booter-manual004077700007650000143000000000000741603066500132025ustar00nigelunknownbooter-manual/BooterManual.html010077700007650000143000001043420741523054600165420ustar00nigelunknown BSD/Mac68k Booter Manual

BSD/Mac68k Booter Manual (HTML version)

Version 12, 3rd January 2002. For Booter 2.0.0

Index of Topics


What is the BSD/Mac68k Booter?

Booter Icon
The BSD/Mac68k Booter is a MacOS application which boots the NetBSD/Mac68k (and OpenBSD/Mac68k) operating system.

What the heck is NetBSD/Mac68k?

NetBSD/Mac68k, also known as MacBSD, is a port of the UNIX-like operating system NetBSD to the Motorola 680x0 processor-based family of Macintosh computers. For more general information on NetBSD/Mac68k, point your web browser at any of the following sites...

Some NetBSD/Mac68k Web Sites

http://www.NetBSD.org/Ports/mac68k
The area of the main NetBSD web site dedicated to the Mac68k port.
http://www.MacBSD.com/macbsd
The MacBSD web site, including more Mac68k port-specific information.

The 'port-mac68k' mailing list

If you like NetBSD/Mac68k and/or use it, you should subscribe to the Mac68k port mailing list, port-mac68k@netbsd.org. Do this by sending mail to majordomo@netbsd.org with no subject and the single-line message:

subscribe port-mac68k J. Random User

replacing J. Random User with your real name, of course.

Hardware Prerequisites

The minimum hardware configuration includes a 68020 with a 68851 PMMU chip or a 68030 or better processor, without which the Booter will refuse to start. The Booter has been tested recently under System 7.1 and 7.5 (both minimal and full installs), but it should work under any System 7 setup. System 6.0.x is not supported because the Booter requires the machine to be booted in 32-Bit Addressing mode. The Booter also will certainly fail if Virtual Memory is enabled, so turn that off too while you're snooping around in the Memory control panel.

The Macintosh models that are supported to some extent by NetBSD/Mac68k vary on what seems to be a daily basis sometimes. Check the web sites, and especially the user survey contained therein, for more information.

How do I boot this silly thing!?

First and foremost you must have formatted and partitioned a drive for A/UX, and run Mkfs, and downloaded and installed at least the base package and a kernel. If you haven't done this, you should visit the above Web sites for more information.

Assuming you have enough of Unix (and MacOS!) installed, here is how to boot it:

A Quick Overview of the Boot Process

First off, the Booter must attempt to open the kernel you've specified. If you've specified a kernel in your BSD partition, it will take a second to search for it. Then the Booter will (hopefully) identify the kernel as a 68K executable, like this:

MID_M68K executable

(Here, as in the rest of the boot process, the numbers you get may not be the same as the numbers I get. They are highly kernel-dependent.) Then it will proceed to load the kernel. As the different sections of the kernel are loaded, numbers will appear in the status window, which look something like this:

1355440/4432+73908+176976+[184068+175954]

These numbers correspond to the sizes of the text (executable machine code) section, the static data section, the bss (uninitialized data) section, the symbol table, and the string table, respectively. The final message displayed before the jump to kernel space should be as follows:
  Bye-bye...
        So I sez to him...  The real way
        that it should be done is to...
Then the system will act as if it is restarting, and when the restart would normally happen, the screen will go blank and a short list of memory mappings will appear, followed by a copyright notice and autoconfiguration information, which signals that you've booted.

Boot Options, Ad Nauseam

Devil-guy Booter Icon
The boot process is not completely machine- and installation-independent. Therefore, the Booter allows you to set certain options and flags in order to communicate to the kernel important facts about your machine. Most of these options are set in the 'Booting' dialog window, though some are set in the 'Serial ports...', 'Monitors' and the 'Preferences' dialog windows.

Booting dialog window:

Picture of Boot Options dialog window

Described below are the options that can be set from the 'Booting' dialog window. In most cases you should be able to boot after modifying only these options.

Kernel Location: Mac OS file or BSD device
The chief purpose of the Booter is to load the BSD operating system code into memory. This code is called the kernel and is normally contained in a file called netbsd. This file is normally in the root directory of the root partition of your BSD file system. However, it is also possible to load kernels from the MacOS file system, such as when testing new systems, or on systems where SCSI is not yet supported. This boot option lets you select the location of your kernel; if you select Mac OS the Booter will look in its own folder for the kernel (or another folder selected by pressing the 'Set' button). This option should, as stated above, normally be set to BSD device
Kernel Name
Normally, the kernel is named netbsd, and that is what you should enter for the Kernel Name. However, if you are testing a recently-installed kernel, or simply want to boot an alternate kernel, you can enter that name here too. Note well, however, that much BSD software assumes that the kernel is named netbsd and is in the root directory, so if you have a kernel that works well, you should probably name it as that
Partition
For the Booter to load the kernel from a BSD device, it needs to know which partition contains the kernel. Normally, the partition field can be left blank, and the Booter will magically locate a suitable root partition.

If you have more than one such partition on the BSD device, you may want to force it to use one of them by entering the name of the partition in the Partition Name field. For a MacOS partitioned disk, this would be the name which your disk formatting software gave the partition when you created it e.g. 'UNIX Root&Usr slice 0', 'NetBSD Root & Usr' or 'A/UX Root'. For a BSD labelled disk (e.g. disklabelled), this would be the name of the disk slice e.g. 'sd0a'

If you do not enter a name, the Booter tries to guess the correct partition. The first Unix (i.e. type="Apple_UNIX_SVR2") partition with 'Root' in the name is its best guess, and if there isn't one of those, then the first Unix partition which doesn't have 'Swap' in it's name is its next best

ATA disk
If you want the Booter to get its kernel (and the kernel to mount root) from the machine's ATA (IDE) disk, then select this.
SCSI disk and ID
If you want the Booter to get its kernel (and the kernel to mount root) from a SCSI device on the machine, then select SCSI disk, and enter the SCSI ID of the drive which contains your root partition. If there is no SCSI ID entered, zero is assumed.
Enabled?
This option will allow systems to boot without a root SCSI ID specified, e.g. using NFS filesystems. For normal usage you will probably want to leave this on
Ask for alternate root/swap?
This option allows the user to specify an alternate root or swap device right before the root partition is mounted. This allows you to, for example, boot off a kernel on the first SCSI disk (sd0) and specify that root is on cd0 (a CD-ROM) or sd1 (et cetera ). For normal usage you will probably want to leave this blank
GMT Bias and Auto-set GMT Bias
This should be a number of minutes which are added to UTC (Coordinated Universal Time, also known as Greenwich Mean Time or GMT) to get to your time zone. If you have the MacOS Map control panel set with your location, you can enable the 'Auto-set GMT Bias' option to set this information
Single User
This option tells the kernel to boot the system in single-user (administrative) mode, as opposed to your normal everyday multi-user boot. This can be necessary when you're having trouble booting into multi-user, or if you need to edit some files before the system finishes booting
Extra kernel debugging messages
This option tells the kernel to display some extra debugging information
Jump into debugger after booting
This flag tells the kernel to go into the debugger (either kgdb or ddb) shortly after initialization

Serial ports dialog window:

The options in this dialog window, described below, pertain chiefly to the initial settings of the new zsc/zstty serial driver:

Picture of Serial ports... dialog

Serial Boot Echo
Output from the kernel will be echoed to the printer port at 9600 baud, no parity, 8 data bits, 1 stop bit, if this option is checked. (See also the 'Default Serial Speed' boxes)
Serial Console (Modem or Printer)
The selected serial line will be used as the console, with the same communications settings as with Serial Boot Echo (above), if this option is checked. Be careful that you do not have a getty process running on the same serial line you are using as the console (i.e. do not run getty on both ttye0 and tty00 if Modem port is serial console) because this could panic the kernel. Note that you can select a port for the serial console, but the serial boot echo is always on the Printer port.
LocalTalk connected to Printer port
In some instances the kernel will freeze if it is connected to a high-traffic LocalTalk network. Although LocalTalk is not supported in the kernel, if this box is checked it will keep the kernel from panicking if it encounters this situation.
Open port before booting (for PowerBook)
In order for PowerBooks to use the serial port(s), they must be turned on before booting in order to get the Power Manager to turn the power on to the chip and the ports. Setting this option should only be necessary if you are booting NetBSD/Mac68k on a PowerBook.
Default Serial Speed
With NetBSD/Mac68k kernels later than 20th October 1997 (i.e. 1.3), the port speed can be set by typing the new speed in here. This might be useful if you want to log boot messages to a HP DeskJet printer, for example.
Set Modem (or Printer) port to 'stty raw' defaults
This option instructs the kernel to set the defaults for the serial port in question to those from the 'stty raw' command. BSD assumes serial ports are hooked up to terminals by default, and the default behavior for terminals is for the kernel to echo back characters that the user types into the terminal. In 'raw' mode, no assumptions are made about what's on the other end of the serial port. Among other changes, no characters are echoed back out the port.

The difference is important if your BSD/Mac68k machine is connected to the serial interface of an HP DeskWriter printer. They (and possibly other printers) report status by sending a character to the host computer. Without this boot option, BSD would think that a person was typing these characters and echo them back. But then the printer thinks it is supposed to print these characters. On the DeskWriter, these characters can come out as ugly white-on-black block letters (garbage). This printing will happen seemingly spontaneously, with no intervention from the user. Setting this boot option should cure the problem.

This option is probably not appropriate for a serial port hooked to a terminal, as the normal terminal defaults are the best in this case.

External clock sources
The new zsc/zstty driver (introduced in NetBSD/Mac68k 1.2) tries to support more of the options Apple originally foresaw for the Mac's serial ports. One feature is support for feeding the Mac a clock from which it will generate the baud rate used to send and receive data. Potential uses include talking to certain Personal LaserWriters and driving MIDI adapter units.

Each serial port has two input pins, so there are four possible clock rate values. When a clock rate is entered, two things happen. First, the associated pin is flagged as reserved for a clock, and second, the clock rate is considered when NetBSD requests a particular baud rate.

The first action happens as these pins (which have different names under BSD and Mac OS) are usually considered as modem signal pins by BSD. The kernel must respond accordingly whenever the modem thinks a data carrier has been detected, something which would normally happen less than once a second. Clock rates, on the other hand, are usually in the millions of cycles per second, so the clock reservation acts as a protection for the NetBSD kernel.

Note that one of the pins on the printer port (GPi/DCD) isn't actually usable by the baud rate hardware; it corresponds to the fully-featured clock input on the modem port. Thus it is included to protect the kernel from a device intended for the modem port yet connected to the printer port.

Monitors dialog window:

Current kernels and X Windows servers cannot change video modes very well. The BSD/Mac68k console will work with almost any depth or resolution, but the X Window system (and maybe the DT multi-window console) cannot.

For those of you whose use your Macs for MacOS as well as BSD/Mac68k, these options allow you to keep you MacOS screen the way you like them, and then change the settings just before booting the BSD/Mac68k kernel:

Picture of Monitors... dialog
Change Monitor Colourmap to GreyScale
Support for colour is not currently in all X servers, but some of them do support 256 greys. This option should make X Windows a little more usable on those systems
Change Monitor Depth
A set of common depths, some of which your Mac may not support. If the requested depth isn't supported, no depth change should occur
Change Monitor Resolution
Common MacOS screen sizes, which both your monitor and your Mac may not support. If your Mac doesn't support the requested size, the screen may flash, but no change should happen. If you monitor doesn't support the requested resolution and scan rate, behaviour depends on the monitor and cable. Usually, there will be no resolution change. If you have a Mac to PC style cable which is set differently to your monitor's capabilities, the monitor may lose sync, and in rare situations, damage may occur

Note that these options only affect the main monitor. They don't currently do anything with multiple monitor setups.

Startup dialog window:

A few more miscellaneous options pertaining to the operation of the Booter itself are in the Preferences dialog window:

Picture of Startup... dialog
Auto boot on startup / Timeout before boot
If you have saved your normal boot preferences, you might want to just boot right into BSD as soon as you open the Booter. Checking 'Auto boot on startup' will make the Booter start booting a specified number of seconds after it starts.
Show dialog & wait for OK before booting
If the above option is checked, then a dialog window will appear before booting that asks you whether you want to Boot or Cancel. This was implemented so you might read the messages in the window before they are blanked out by the appearance of the console
Debugging level
Setting the debug level to 1 or greater values gets you lots of debugging spew in the status window that can help you diagnose what's going wrong in the boot process. But normally you will want to leave this at 0.
Log debugging to file / Set...
If you want to keep a log of the messages in the status window, so that you can dump it into a mail message or just look at it later, check this box and click on 'Set...' to choose where you want the log file created. Note that the Booter will not replace an already-existing log file, but will append to it, even though it says "Replace existing 'bootlog'?" when you save it. Note also that when people ask for a bootlog they usually want you to turn debugging on (to level 1 or 2) and use this option. Normally, of course, you won't need to keep the bootlog turned on.
No env dumps
If this option is not checked, the Booter will dump the boot environment, a list of variables not unlike the UNIX process environment, into the status window before booting. If this option is checked, the booter will not spew this entire list of strings into the window before booting. They are nice for bug reports, but they do slow down the boot process. This option disabled goes well with 'Show dialog & wait for OK before booting' being enabled & a nice, big boot window. :)
Halt on non-fatal errors
A few errors (mostly concerning such recondite things as video board interrupt errors) are considered non-fatal. If you are having trouble with BSD/Mac68k video, you might want to try turning this on, so that you can read the error messages as they scroll by. Mostly, though, you'll not need to worry about this; leave it unchecked

Machine dialog window:

Options relating to the hardware configuration of the machine are in the machine dialog window:

Picture of Machine... dialog
RAM size and Auto-size RAM
You should click Auto-size RAM to have the Booter automatically calculate the amount of RAM installed in your computer. This will not be an option in future releases. The paranoid can type in the amount of RAM (in megabytes) in the appropriate box as well
Change default MACHINEID (for accelerated Macs) and Machine ID
Some clock-chipped or accelerated Macs report a different MACHID to the Mac's base hardware, which can prevent the BSD kernel from finding hardware. Checking this box and entering the MACHID which matches your model Macintosh should help
No warning on PPC Macs (for testing)
The Booter now puts up an alert if executed on a PPC Mac. If you want to do some development of the Booter on, say, an iMac (Hi Scott!) then you may want to check this box
Don't disable VBL interrupts on video cards
Booter versions after version 1.8 attempt to disable vertical blanking (VBL) interrupts on all active video cards found, because current implementations of the grf_mv (Macintosh QuickDraw-compatible NuBus video card) driver do not handle VBL interrupts reliably. If this process fails (and it should be obvious if it fails; an error code is printed and the boot stops) then you should check this box and try booting again
Video address hack (for LC475 & 575, pre 1.4 kernels)
This option should allow the internal video to be used as the console on these two Macs with almost any kernel. These machines use the MMU to remap the video address under MacOS, and this mapping is lost when BSD/Mac68k kernel execution begins. Do not use this option for any machine other than the LC/Performa 475, 575 & 630 series, as it may cause undesired kernel crashes
Disable driver for Sonnet Allegro (on SE, LC, LCII)
An accelerator card for some machines comes with a driver which disables the 68030 at restart and shutdown time. Checking this box prevents this, so that the kernel will be able to use the 68030 after the Booter does a shutdown of the MacOS

Common boot Errors

Some of the following errors are practically FAQs on the port-Mac68k list. Some are not. Any of these could possibly happen to you. This guide can help you understand what is going wrong. Don't leave MacOS without it!
Couldn't locate any partitions on SCSI ID (0). Cannot open kernel (0,?)netbsd.
This error occurs when the Booter cannot open the partition you specified for the kernel. Check for typos in the SCSI ID and/or Partition Name boxes in the 'Booting' dialog window.

File 'foobar' is nonexistent. Cannot open kernel (0,?)foobar.
This error occurs when the Booter found the partition, but couldn't open the kernel you specified. Make sure you specified the right partition, and make sure you didn't mistype the name of the kernel (in the 'Booting' dialog window.)

Cannot malloc()...
malloc() failed...
Not enough free memory to load this kernel.
(et cetera)
These all mean that the Booter has run out of memory. Increase the Booter's memory partition using the 'Get Info' command in the Finder, and try booting again.

Magic numbers do not match -- Improper UFS partition.
This means that the Booter went to read the NetBSD partition you specified, and it didn't find a valid BSD filesystem there. Did you remember to run Mkfs on the partition?

Error -nnn turning off interrupts for slot SS
Error -nnn {getting name of,trying to open} slot 0xSS video driver
(et cetera)
Though these shouldn't happen, if a video card error stops your booting, you might want to try booting again with "Don't disable VBL interrupts on video cards" checked in the 'Booting' dialog window

Error #-nnn locking kernel memory.
The Booter is trying to boot with virtual memory enabled, and it couldn't lock the kernel buffer in real RAM. Booting with virtual memory enabled is not supported at all, and on top of that, it is extremely unlikely to work. You should turn off VM in the Memory control panel, restart, and try booting again

Failed to read executable header from kernel image.
This kernel is not in a format which the Booter can execute.
The kernel does not appear to be a 68k kernel.
Short boot_read. Kernel file corrupt?
These messages all indicate that the Booter can't imagine that the file you have designated as a kernel is really a NetBSD 680x0 executable. It may have become corrupted in transfer - you did use binary mode when FTPing, didn't you? - or you may have forgotten to untar the kernel

Debugging the boot sequence

The Booter is usually very reliable, but there are probably some undiscovered bugs. This section will help you discover what may go wrong.

The Booter program is only in memory up until the kernel loads and starts executing. One of the first things that the kernel does is clear the screen and start putting up console messages, the first of which is a NetBSD copyright message. If you got past the NetBSD copyright message, any error is probably not the fault of the Booter. If, however, the boot sequence fails while there are still MacOS windows on the screen, then it may indeed be a problem in the Booter.

The Booter has a number of debug messages that are only output when the 'Debugging Level' is greater than 0 (the default). The following lists the debug output for each level:

  1. Summary of Macintosh and MacOS details, environment variables being set, process names which are being killed, debugging level when Booter program starts, vertical blanking and video driver info, Gestalt call failures, BSD block size and inode summaries, lots of kernel info dumps
  2. BSD partition block and directory node reading, video address stripping, kernel section pointers
  3. Details of all MacOS file reads, indirect BSD blocks read, ELF section info
  4. 'sector' information when finding BSD files, kernel string table debug
  5. Monitor depth and resolution change calls, '*' for each non-cached BSD block read, ELF header info, string and section table parsing debug
  6. Hex dump of start of text and data area of kernel
  7. Size and location of each disk block read
  8. SCSI read block count, ATA disk device information
  9. Hex dump of each block read by disk_scsi()
Note that a debug level of 2 also outputs level 1's output, et cetera.

While the above list may be bewildering, if you seem to be having a problem with reading the kernel from a BSD filesystem, then 1 through 5 are the debug levels to try. SCSI buss problems can be investigated at debugging level 9. Illegal kernel formats may be revealed by debug level 6. et cetera

If you think you have found a bug in the Booter, or if you cannot work out all of the debug output, then you will need to document your system and the problem, and ask for help from the port-mac68k mailing list.


Booter Versions

The Booter src code package contains a file ChangeLog.txt which has a detailed log of different Booter versions. Here is a summary of the ones you will probably need to know about:
Version: 1.9.4, October 1st, 1996
Author: Brian Gaeke
  • First Booter to support any 68040 (i.e. Quadra-class) machines. Known to boot kernels from NetBSD/Mac68k versions 1.1 and later. For kernels older than 1.1, your mileage may vary -- in theory the support is still there, but it's not been tried in quite a while

Version: 1.11.1, December 3rd, 1997
Authors: Scott Reynolds, Nigel Pearson
  • User interface improvements, plus the following changes from earlier versions:
  • Allows booting with larger kernels (many post 1.2 kernels require this Booter)
  • New 'Auto Set GMT bias' checkbox which uses the 'Map' Mac OS Control panel to set Unix's time zone information
  • New ability to boot from gzip-ed kernel files
  • New serial fields to set different default serial port speeds
  • New Monitors options which allow changing of the main screen depth before booting
  • If boot is aborted, resets monitor depth
  • Saves preferences in a separate file, rather than in the program's resources
  • Added video address hack for LC475/LC575 Macs' console on internal video
  • Handles kernels in Mac OS files much better
  • Better debugging/error output for low-level SCSI stuff

Version: 1.11.4, June 22nd, 1999
Authors: Nigel Pearson, Marc LaViolette, Mikael Forselius
  • New 'Machine' dialog for hardware specific options, fixes for testing on PPCs
  • Extra debug output summarising machine and MacOS details
  • Support for Sonnet Allegro accellerator, ability to change MACHINEID passed into the kernel, plus the following changes from earlier versions:
  • User interface changes and addition of 'jump into debugger after booting'
  • Bug fixes (serial booting, hang if a removable SCSI device was offline, problem with monitor depth & resolution-changing logic)
  • Booter now checks for Virtual Memory, and pops up an alert and exits if used
  • Monitors options now allow changing of main screen's resolution and colour mode (to greys) before booting. The latter is for some of the new Xservers which don't work with colour yet
  • Now correctly kills running applications

Version: 2.0.0, January 3rd, 2002
Author: Nigel Pearson
  • Allows booting from ELF kernels
  • Keeps removable disks mounted (i.e. no ejection) during boot
  • Ability to boot from disklabelled disks
  • Initial support for booting from ATA/IDE disks
  • Fix for gzip re-entrancy bug

Who's responsible for this?

The Booter is currently being maintained by Nigel Pearson. <nigel@ind.tansu.com.au or nigel@socs.uts.edu.au>

There are a list of Booter improvement suggestions in the file TO-DO.txt (in the src code package). Feel free to email any new suggestions to Nigel after glancing through that file. Also feel free to contact Nigel about implementing any of them yourself!

This long list of people have worked on the Booter: Allen Briggs, Steve Brown, Chris Caputo, Matthias Drochner, Michael Finch, Mikael Forselius, Joe Laffey, Brian Gaeke, Brad Grantham, Christian Grssler, Markus Hitter, Dan Jacobowitz, Lawrence Kesteloot, Marc LaViolette, Eugenio Macia Vivo, Nigel Pearson, Scott Reynolds and Bill Studenmund.

This manual was written originally for NetBSD/Mac68k Booter version 1.9.4 by Brian Gaeke. Thanks to Bill Studenmund for descriptions of the new serial port options.


Copyrights, Trademarks, et cetera

Apple, Macintosh, LocalTalk, System 7, and MacOS are all registered trademarks of Apple Computer Corporation. UNIX is a registered trademark of SCO. Other trademarks mentioned herein are property of their respective companies.

Copyright (C) 1996 Brian R. Gaeke

Copyright (C) 1997-2002 Nigel Pearson

All rights reserved.

Redistribution and use of this document, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of this document must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. The name of the author may not be used to endorse or promote products including this document without specific prior written permission.
THIS DOCUMENT IS PROVIDED BY THE AUTHORS 'AS IS' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS DOCUMENT, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. booter-manual/Booting.GIF010077700007650000143000000140550715313433200152100ustar00nigelunknownGIF89a?9QRRRsss!!!BBB,?I8ͻ`(dihl! tmx|pH,Ȥrl:=ZجvzxL.zn{~au TUPXVU~WVˎWg [_Um6[ VdXZo$H1;)\ȐFvդLBZEEs E 1kHobʸObʜI!9BF<3(H*EՏJuC;sfeQѡ^FLXY(T`AKqa.Kn)<hذ{EK0NAtc!Wf $e|,ʵm0xRӨ|+댙V6mVftxS⼏{,>m9lK_RpoknKPxRH60 {5;4P`C2{:jp I ,ϊR10B@ &[6{2&K <<,39LqD3Ƽj\37?vȢ-?,C- 5 rO:#~NZ"3EdB_^`#vWF3`g 8M\ Pa>.Agd9v̑#&9IIz+&79/RR$((X- | (Mi2*VP=rr&-rWD^+;o,_,jZ.`2X0lj3,x3`:rZ[7gvs] }9OFU>EF3 B55Py0JQ;ͨwDzԣ H`(MJW $tLZҙڴ5N57iͧ; z:Qq j"FEAәc R*lBz1V!'֭~&(AeuӟhkUºFp+3[WI-k,V;-yN1dlU<*V0$etavfIuTіQ*WnҵCCmTkK}3TS,(_2mn5RjKh*p%݈nݮ&0E( !E Y[x5+fW|TƗxZTۻ[FCZXߨ~|޳aЉEpnlY2nkuWIHtJհޮs5k^oո%ά) 7&ǨCG.~V/s8e>]Sb*kȕrjhՙWԲ8KӠ3jYf=`mP9Q`=wz67+Pd uĖ3+ Lh \n ॊ+{k*uisu,E/q۩i H5{Cb3" MUcy9-'Kl,IOԆ6x=gⶒepR꫺Oj6-y[6I~W1wZ- VrgxeJK\U-.Mkuk“aq&Bu}yHdT/Ly8ƚ{ʉZM:^|sB|ƯNk(4$em VO6茸z!V>9,>n&8ER9rwJ={oL'wk^lۼ_cka΃*߼ћ~I?YջεixQO;=?`SE= =ï?oe엎 '/}΂Ld@2P!Wo.}%G:Jl`4_ d19j)wNer $x4[HC,@`۵xI2h4$E>AmFe .21\dd?Nv==ss\Go+0Hh 5w)Hc7aÃtf^QwPN.+/8^fFufaBԆXwqYX/=aXch*M=cRa2e00(bexWbGPӂ 0hH`(gsqvƁH70HE0WjMY2QVo*+S8GdLHw~Z {pc=uET{x^iUVuPJ|xgWUxpf1$P"׋MfeHPh7]hQ󃐛{/ׄMhjVk,]E|%p(( "XzW22y,ْDnZ ZI35ilB[5HwJcs A{(~88[ u2TiӘ0Sv` 1+hC3P3vNJ6&r S& cg)k6X&v0ׅgw)yzY%՗`nE[LYYUy0]1W_.>QfXpeLyyJ|b )5bcg铭I|UyAFOX9FdXIfRdpdfV ?)ßYH48f،jBj}p@f`f5Éۙ5@iEkW(e(heӠ.Z0*exI%h5dVs?#gULՁ_g80 Ɖcbhvd''&!֘T5uf"*@Us$Fv96Ce wɞjl 3l&ʂ٤'x(YFad$3VHaHbPm2|gu>91ʂn*x({9ZJW9R)Y u  e}eZʫ֔j:n ;nǭh:oZv*n꺮f-:Z/|گ|J:׮KYz k{U[VkڱﺫzՖcU(7syp$4H 5 Ƥ0+C蕢O(W-{/>Ƈ [vXC(kMdi6p;r*E;7n٠vQOvoQ[6UBٰY 孊׵ȶzz*öyVgiLx iX s+y&:|}{+" 3e+p!Ue婻R{4KgP}+x2ꠊKW,ٳG>\*rd Ktɜ2j [j(ɋctX~D9t۫p 95OjK ׽5WPyFJe @COT(k;[ !z}5Uo[2s諩P[u÷x6 3rĤ@\&5\Fԥ#JBNRLqT\.麹ByFז 2)ق5e۹7.0Oh ܞ4($KXpeWyJsJaL&/*8knLOZR{\+_ȩIǷ(km{;-cٵFhtzbIRXmqN>AJE:KZ͞l=U|_v,aܼ{bX=h|DƕPDJ|Tt@[]?ʌnԢa8 ,U҂؈y[i-v)쳒Vlm \՜# ddӷ _ȳ^Lc}zN;k< ʁz|:[m)M+c[ulgt7=]ב}ک+ j5%mA\-ofќ>;E캸9Ռ3K++[m(L8K0jMG2ҩYٵ+ ɄmŝkzŬ-S^ڞڲZ\eG۸ 6 ܼ.ZE6rI|ޠ.y0^]0M<ś]^3ݸM;ͮ %6mmMC٧m]p>@rN>XάUun]m.wNJN~ɠ'œwH$IRS'V®C6KPuM)٣214˩8^ 0HRNҒ^JC3^:"KZӡڃ>xk_/J>4 -^>^X=oˆ(+-/`N~.(+=&?+"H /AJ15/9?0)2RH|=#Ԓ+XO'o+ /,`/>^p$hkljr;/d_fo?OOC^y/tQ/_~a!tZaYo+1Oj +}%,&џΏȿvO~>_:-G4O4UWu_8g,!n°OPQRTUMN,YZY:]5?Xabc`dghXOjlmn`kpqr,suvofwyz0{}f$(`A R;CFXѢ7f.nQD!EJ/)UdK1eΤYM9ӘT@Ol ZQI.eSQNZUYnWLa%[Yiծeۧ8[]y_&\aĉ/fcȑ\e̙5o! MACGCon 1Written by GIFConverter 2.3.7 of Jan 29, 1994;booter-manual/ChangeLog.txt010064400007650000143000001060340741504340200156360ustar00nigelunknown BSD/mac68k Booter Change Log ============================ Up until 1.9.4 -- Brian Gaeke After 1.10.0 -- Nigel Pearson This document was originally adapted from notes found in ufs_test.c. Some quick notes about version numbers and information passing... Originally, there was the first booter. This booter passed information to the kernel through registers. Yknow, A4=video, A2=boot flags, and so on. We ran out of registers fairly quickly. Then there was the Christmas '94 booter. That booter passed an environment buffer. The buffer contained arguments specifying interesting parameters to the booter. That's what the arguments are in ufs_test.c:shutdownProc(). Then there was the generic booter + a version number. That (this) booter specifies the MacOS video and serial addresses, so that the kernel may maintain contact with the hardware in the correct locations up until it activates its own page tables, whether or not MacOS is operating in a mapped environment. There is also a version field, so that newer kernels can know not to boot from old booters. Here is a (non-exhaustive) list of booters that have existed. Which of these correspond to the ones above (or below)? * Original booter, Summer 1992 * 32-bit booter, September 1993 * nofpu booter, September 1993 * New parameters and 8k-4k (8k didnt work) booter, December 1993 * Newer parameters booter, 01/26/1994 ChangeLog starts here. ==================================================================================== * Version 5 -- January 26th, 1994 (the newer parameters booter above.) Fifth in line of booters. This booter, amazingly, should work with ALL previous kernels, because parameters have been preserved. Added all parameters below. ==================================================================================== * Version 6 -- Allen did some stuff [what?] ==================================================================================== * Version 1.6 -- Brad added some time variables and some ROM ADB necessitated variables; ROMBASE, ADBDELAY, TIMEDBRA. No kernel that depends on this info (e.g. MRG kernels) will boot with an earlier Booter. ==================================================================================== * Version 1.7 -- Brad added the setenvbuf() function and added two new variables, ADBBASE and EGRETBASE, which actually contain the config info for the ADB and Egret systems, so we can reset them properly. (Maybe.) ==================================================================================== * Version 1.8 -- Allen added support for mini-root partition image files, and added routines to set variables directly in the kernel namespace, and cleaned up some. Brian added video card sRsrc-searching and VBL disabling code, as well as passing of HwCfgFlags and friends as environment variables, dumping of environment variables before boot, a pause-before-booting dialog, and a little bit more clean-up. It seems setenvbuf() has been disabled. ==================================================================================== * Version 1.9 -- OK, lots of changes described here but not so much real innovation: Added No env dumps option so that if you don't want to see the environment dumped, you don't have to. This will be subsumed in 2.x booters into the diagnostic messages settings. main.c: Added check for 32-bit mode at booter startup; Booter will refuse to start up if the machine wasnt booted in 32-bit addressing mode. appkill.c: added. Booter will now try to send quit AppleEvents to all other applications before booting. ufs_test.c: Added ADBREINIT_JTBL environment variable, 4 bytes at 0xdd8. Flush instruction+data caches just before calling copycode(). Make CLEANUP macro try to free(buf) if its been mallocd. Added more EVENT_CHECKs to copyunix(). Used BootError() in more places. videocard.c: video_call() returns an error code. (Hopefully) more informative error messages. Dont stop the boot when things go wrong. -Allen. Moved some things around in get_video_info so that if there's no place to put the info (i.e. an older kernel), it's not gathered. strcasecmp.c, strcasestr.c: added (former from BSD libc, latter adapted from Net2 libc (ok, I had it lying around...)) stricmp() removed. read_part.c: Revamped get_part_sector() to look at partition names (Root,Swap) as a quick patch until the silly thing can support interpretation of the BZB, in response to some bug report or another. Tried to bring in newer BSD headers but backed out -- structures weren't aligned properly or something (magic nums were wrong, et c.) Maybe later. ==================================================================================== * Version 1.9.1 (M.Hitter) main.c, Dialogs.c, MacBSD.h: added Preferences Dialog with DebugLevel. Moved AutoBoot controls to there. Removed some obsolete variables and move VerbosePrintf to DebugPrintf (1,...). Made modeless Dialogs full working as expected (Event handling etc.). ==================================================================================== * Version 1.9.2 (M.Hitter) Reviewed to allow THINK C's option infer prototypes, i.e. added a lot of prototypes and statics. Maybe I'm stupid, but I was unable to fix for required prototypes (the prototype for harry() was the problem). Added support for logging messages to a logfile. Moved cache disabling from the end of copyunix() to ShutdownProc(). Using now the same code as in the kernel. ==================================================================================== * Version 1.9.3beta1 (W. Studenmund) Added a Serial Ports... Dialog to control the new serial port options in the zsc/zstty serial port driver. Added entries for clocks present on the clock input lines, selection of "stty raw" defaults for either port, warning the kernel that there might be LocalTalk on the printer port (sets the baud rate to 1), and opening the modem for output just before boot (to turn on power to the SCC chip on powerbooks). Moved Serial Echo and Serial Console selection controls to the Serial Ports... dialog. Added code to the save and load user configuration routines to deal with no preferences being present. LoadUserConfiguration() now just zeros out currentConfiguration if no prefs are present, and SaveUserConfiguration() will make a preferences resource if needed. ==================================================================================== * Version 1.9.3beta2 -- This is a bug-fix-only release. Major changes are that we now test for the presence of the VM system and existence of the _MemoryDispatch trap before calling LockMemoryContiguous. Hopefully this squashed the unimplemented trap crashing bug which was appearing on minimal install systems. Also, the booter now compiles in CodeWarrior AND in THINK C. (To be precise, it has been tested in MW C/C++ 68k v1.5, the version on the CW9 disk, and in THINK C 8.0.) The mess resulting from having to deal with the two compilers and their two incompatible sets of header files and libraries will be removed after version 1.9.3 final, so compiling under THINK C will not be supported for long. More user-invisible changes: Everywhere: Misc. type & type-cast changes, removed some unused variables, Quickdraw globals now use qd. prefix. ufs_test.c: The name of the struct exec which holds the a.out header of the kernel was changed from x to exec. Better environment printing (i.e. the environment is no longer calculated twice - once for printing and once for real.) print1env() is history. Assembly-language blocks moved into their own functions and MOVEC instrs hand-assembled for compatibility with brain-damaged CodeWarrior assembler. (A complaint has been lodged with the proper authorities. Grumble.) Low memory globals are now accessed by their proper accessor functions where available (LMGetXxxxx()). Prototype for harry added (at considerable cost to code simplicity.) It compiles in CW9 with Require Function Prototypes and in THINK C with Require Prototypes. Dialogs.c: Cleaned code up substantially. MacBSD.h: CLEANUP is no longer defined by default to be while(0);, now it is /* NOTHING */ by default. Note that this only makes a difference in read_ufs.c. Sooner or later, Im just going to ditch EVENT_CHECK and CLEANUP as they are currently implemented. ==================================================================================== * Version 1.9.3 BETA 3 -- Mostly cleanup this time around, with 1 important bug fix in dialog code and a whole new way to get the parameters of the main screen using the Graphics Device Manager and Color QuickDraw routines. Dialogs.c: Fixed bug in GroupSet() which was not taking into account argument promotion when retrieving item numbers off the vararg stack. main.c: Now we check for availability of 68020+68851 or 68030 or better at booter startup time. getRAMSize() and MacOS32BitMapping() moved to machdep.c. machdep.c: (added.) Most of the boolean functions that result from interpreting Gestalt results have been moved here. getRAMSize is now GetRAMSize, for consistency. ufs_test.c: Changes to include files. load, lowram and mach are history, as well as many other superfluous variables of which Ive lost track. BootError now works like printf(). New max_avail_mem() which should probably migrate to machdep.c. Caches are now flushed and disabled before the call to copycode(), only. kern_geteof() is history. In copyunix(): Now, load address is LOAD_ADDR (a #define.) All the video info comes out of GetMainDevice() and its subsidiary data structures; the old code is still there (but #ifd out.) Lots more comments, including a try at describing the format of the kernel buffer, and documentation of the new algorithms for finding screen parameters. Figured out exactly what /* LAK says I need this. */ meant: copycode() must be copied to the end of the buffer, which must end on a page boundary. The first two lines round down len to the next lowest page boundary, and then harry is assigned to be 1KB below that. ==================================================================================== * Version 1.9.4 -- The new, improved Booter Manual (in HTML) has been included. The string+environment size has been doubled to 256KB. Eventually this will be fixed for good by allocating it dynamically. Mikael Forselius posted a big list of things to do to make the Booter boot correctly on the LC475 series machines. This includes changing the way the caches are disabled (implemented) and changing (again) the way the video address is determined (not implemented yet). More on this in future versions, for sure. ==================================================================================== * Version 1.9.5 (Dan Jacobowitz, youngdrow@mail.geocities.com, Nov 22, 1996) Was available at . Changes: Option for B/W Mode booting! Rearranged prefs dialogs. Fixed the buttons in the Untested Machine dialog. (These changes were subsequently lost in later Booters. Nigel) ==================================================================================== * Version 1.9.5 and 1.9.6 (Allen Briggs, briggs@macbsd.com, Mar 4, 1997) The main (only?) change I made was to support booting with larger kernels--it dynamically sizes RAM to account for larger symbol tables. Older versions of the booter just assumed that the symbol table would be 120K or less... Many post-1.2 kernels do exceed this size. ==================================================================================== * Version 1.9.7 (Steve Brown, sbrown@best.com, Mar 19, 1997) Added an Auto Set GMT bias checkbox and the code to make the booter automatically get the GMT offset from the MacOS. Also moved the Centris & Quadra 610 and 650 into the tested machine category. ==================================================================================== * Version 1.10.0 (Allen Briggs, briggs@macbsd.com, Apr 24, 1997) Added ability to read gzipped kernels. Removed testedMachine stuff. ==================================================================================== * Version 1.10.1 (Nigel Pearson) * Never Officially Released Mainly changes to get it to compile under Think C v7 _and_ CodeWarrior. Added alias of the resource file (for Think C compilation). Updated versions in ChangeLog and resource file. Dialogs.c: Put all of the SMALLFUNC stuff into a new file, DialogMgr.h and added new function GroupHilite(). machdep.c: Changed MachineLocation structure de-reference so that it compiles under both Think C _and_ CodeWarrior ufs_test.c: Cast shutdownProc() to (ShutDwnUPP)shutdownProc to match Think C prototype for ShutDwnInstall() BSD_Mac_Booter.rsrc: Updated version numbers and took chopped list of names out of version resources, replacing with by the NetBSD/Mac68k group zlib: Changed all text files from Unix to Macintosh format, added Think C project zconf.f: Put (#if !defined (THINK_C) ) wrapper around Byte typedef zutil.h: Changed start of line 151 to #if defined(__STDC__) to match Think C ==================================================================================== * Version 1.10.2 (Nigel Pearson) * Never Officially Released Added new Serial fields to set different default serial port speeds (with a matching kernel), and a new Monitors dialog which allows you to change the depth of your main screen before booting. (will also allow you to change the resolution in the future) Dialogs.c: Extracted Serial dialog stuff into separate file, Serial.c main.c: Added extra menu item for Monitors dialog, and a call to MonitorChange() just before booting MacBSD.h: Added extra constants for Monitors and Serial dialog, and variables in the user configuration structure Monitors.c: New file containing three functions to handle the new Monitors dialog and MonitorChange() which actually changes the depth Serial.c: Added a little code for handling the new Default Port Speed items ufs_test.c: Added a few lines to output environment variables for new serial items BSD_Mac_Booter.rsrc: New dialog resources for Monitors dialog, re-arranged Serial dialog and added new fields, added my name to the About dialog ==================================================================================== * Version 1.10.3b1 (Nigel Pearson, Aug 29, 1997) Fixed nasty booting problem on IIvx machiness, and small bug where Auto Set GMT bias could be turned on but not off. Dialogs.c: Added currentConfiguration.AutoSetGMT = 0 machdep.c: Added dummy function UsingVM(); Monitors.c: Removed some commented-out code ufs_test.c: Removed old (assembler) cache-disabling code (incompat. IIvx) BSD_Mac_Booter.rsrc: Again took chopped list of names out of version resources, replacing with by the NetBSD/Mac68k group (This change somehow was in 1.10.1 but not 1.10.2) ==================================================================================== * Version 1.11b1 (Scott Reynolds & Nigel Pearson, Sep 19, 1997) Standalone miniroot files are no longer supported, as they have been obsoleted by in-kernel root filesystems. As a result of the previous, the Miniroot field was deleted from the Boot Options dialog. The minimum and preferred memory sizes have been set to 2048K and 5120K respectively. A new check box was added for the root SCSI ID field: Enabled? tells the kernel to construct a boot device cookie based on the root SCSI ID. This has been the case in the past, and by default this box is checked. The purpose of this option is to allow systems to boot without a root SCSI ID specified, e.g. using NFS filesystems or in-kernel miniroots. The option dialogs had cosmetic cleanup done on them; positions of several items were adjusted slightly, and the order of items when tabbing through editable text fields was made consistent. The dialog brought up by File -> Preferences... has been moved to Options -> Startup..., as this is more descriptive of its function. The dialog itself hasnt changed at all. Consequently, the Save Options & Preferences menu item is now simply `Save Options. The About ... dialogs author list has been split into two columns. It was getting a bit unwieldy. Dialogs.c : Added DoButtonOutline() MacBSD.h : Re-numbered some menus and dialog items main.c : When creating empty/initial prefs, clear with MetroWerks memset() and set some defaults. Removed MonitorChange() call, disable options menus when booting, menu restructure read_macos.c : Removed miniroot stuff ufs_test.c : Updated BOOTERVER env. var., removed miniroot stuff, improved Not enough free memory message, added a bit in the booting flag for setting the boot device cookie thingy, added MonitorChange() call BSD_Mac_Booter.rsrc : Re-numbered menus and dialog items, fiddled with positions Monitors.c, Serial.c : Added DoButtonOutline() call ==================================================================================== * Version 1.11.0 (Scott Reynolds, scottr@og.org, Sep 27, 1997) Fixed code to display outline around default (i.e. OK) buttons. Dialogs.c : Added DeDefaultOutline() and SetDialogDefaultOutline() MacBSD.h : Renumbered dialog items for extra user item Monitors.c, Serial.c : Changed DoButtonOutline() call to SetDialogDefaultOutline() BSD_Mac_Booter.rsrc : Added user item (for drawing default button's outline) to each dialog, and a few more names to the 'About...' Dialog ==================================================================================== * Version 1.11.1b5 (Nigel Pearson, Scott Reynolds, Nov 2, 1997) Now writes preferences into a separate file. Better handling of Mac OS kernel file. Some user-interface changes. Moved all common copyright-related stuff (e.g. licence details) into a new file COPYRIGHT.txt boot_vfs.c : Moved all gzip related stuff into a new file, gzip.c Dialog.c : Removed stuff relating to Startup Preferences dialog into a new file, Startup.c. Added code to use a file requestor to select the Mac OS kernel file and to save the resultant FSpec structure MacBSD.h : Reworked user_config structure. Added some #defines to easily enable/ disable gzip code (e.g. #define kernel_read gzboot_read or boot_read) main.c : Tidied up error handling logic after calling boot_read. Removed Load/SaveUserConfiguration stuff into a new file, Prefs.c Monitors.c : Added code to remember and restore monitor depth read_macos.c : Changed from Unix style io calls to Mac style BSD_Mac_Booter.rsrc : Moved debuging-related items from Booting to Startup dialog. Added button to set Mac OS kernel file, separated kernel location items from others in Booting dialog ==================================================================================== * Version 1.11.1b7 (Nigel Pearson, Nov 9, 1997) Changed booting sequence so that the attempt to kill other MacOS applications (note that this is broken, at least in my testing) happens _before_ the depth change occurs. This is so that every other app won't have to redraw all of its windows. Added UI for an optional booting item to get the real version of the mmapped video_address for LC475 type machines (Mikael Forselius's suggestion from about a year ago). Killed a few bugs and eliminated unneeded #includes MacBSD.h : Moved EVENT_CHECK macro into a new file, event_check.h Prefs.c : Fixed 2 bugs; 1) "Log debugging to file" failed if the "Set" button hadn't been used (i.e. there was no default value for the filename) 2) Modified preferences file code so that the file is only written when a "Save Options" is done ufs_test.c : Removed some #includes and moved kernel console video address stuff into a new file, videoaddr.c ==================================================================================== * Version 1.11.1b8 (Nigel Pearson, Nov 11, 1997) Implemented hard-coded video address option for LC475/575 machines (looking up MMU maps was too hard). Bug fix b7 where video_address was never set (i.e. no console) ufs_test.c : Removed extra video_address variable videoaddr.c : Added hard-coded address ==================================================================================== * Version 1.11.1 (Nigel Pearson, Dec 3, 1997) Improved low-lever SCSI debug output and added sensible(?) errors for wrong SCSI ID MacBSD.h, read_disk.c, read_part.c : Added return value for read_scsi, read_ufs.c : Print partition name when searching for boot partition ==================================================================================== * Version 1.11.2 (Nigel Pearson, Eugenio Macia Vivo, April 18, 1998) Now checks for a few more things in the MacOS (Virtual Memory, AppleScript, et c.), correctly kills running applications (a problem with my Think C's project settings), and allows changing screen resolution and colour mode to greyscale. Also has better default memory settings appkill.c : Added error-checking and Control Strip hiding code BSD_Mac_Booter.rsrc : Added VM alert and GreyScale box in Monitor dialog MacBSD.h : Added ids for above and a few prototypes machdep.c : Added HasAppleScript() HasControlStrip() HasDesktopPicture(). UsingVM() now checks if logical memory size > physical main.c : Check for UsingVM() and popup Alert, changed conditions for hiding 'Boot Now' menu, some tidying up Monitors.c : New Display Manager calls to change resolution, and addition of GreyScale mode changing and restoration RequestVideo.c, RequestVideo.h, RequestVideoSC.h : New stuff for Display manager ufs_test.c : Now also calls RestoreDepth() & MonitorChange() if colour mode (e.g. GreyScale) or resolution change requested/happened. Only kills running apps if AppleScript is available. ==================================================================================== * Version 1.11.3b3 (Nigel Pearson, May 6, 1998) User interface changes and addition of 'jump into debugger after booting' BSD_Mac_Booter.rsrc : Moved some items from Booting to Startup dialog, and added new kernel debugging tick boxes MacBSD.h : Id changes for above, additional debug flags in config struct Dialogs.c Startup.c : Moved items, split 'extra debugging', added new items, removed last traces of "GreyBars" ==================================================================================== * Version 1.11.3b4 (Nigel Pearson, July 4, 1998) Fixed a small bug in 1.11.3b3 where serial booting would fail when both 'Serial Boot Echo' and 'Serial Console' were used together Dialogs.c, Serial.c, Startup.c : Normalised boolean configuration fields to 1 or 0 (some were 255 or 0) ==================================================================================== * Version 1.11.3b5 (Nigel Pearson, July 5, 1998) Bug fixes to low-level SCSI code; which would hang the machine if a removable SCSI device was offline, improvements to error messages when wrong SCSI ID used, some tidying up of code BSD_Mac_Booter.rsrc : Made debuglevel input box larger Dialogs.c : Removed unused variable main.c : Separated main text window stuff into new file, Window.c Prefs.c : Changed short WritePrefsFile() to void WritePrefsFile() read_disk.c : Better error messages, SCSIComplete() calls to cleanup after error with SCSIRead() read_ufs.c : Improved "Partition not found" message ==================================================================================== * Version 1.11.3 (Nigel Pearson, July 30, 1998) Problem with monitor resolution-changing logic fixed Monitors.c : Changed logic, which was using unneeded Display Manager call for depth- only changes ==================================================================================== * Version 1.11.4a1 (Nigel Pearson, September 30, 1998) Created new machine dialog, added alert (and disabling code) for PPCs, moved some items, added MACHINEID changing BSD_Mac_Booter.rsrc : New alert and dialog, moved some items, tidied and added defaults to alerts Dialogs.c : "Disabled" changing of GMT bias unless 'Auto-set GMT Bias' is set, moved video hack, VBL interrupt and RAM stuff to new dialog (Machine.c), added new dialog to Options menu, some tidying up machdep.c : Added RunningOnPPC() main.c : New alert on PPC machines Prefs.c : Added initialisation for MACHINEID Serial.c : Fix for highlighting problem in serial console radio buttons ufs_test.c : CodeWarrior compile fix (for sys/reboot.h), MACHINEID override, abort boot before disabling VBL interrupts on PPC ==================================================================================== * Version 1.11.4a2 (Marc LaViolette, Nigel Pearson, March 10, 1999) Added support for Sonnet Allegro accellerator card Allegro_finale.c : new file by Marc LaViolette to disable Allegro driver BSD_Mac_Booter.rsrc : New tickbox in Machine dialog MacBSD.h : New config field to store Allegro prefs Machine.c : Support for new Allegro tickbox prefs ufs_test.c : Added call to Allegro disabling code ==================================================================================== * Version 1.11.4a3 (Mikael Forselius, Nigel Pearson, May 27, 1999) Version 1.11.4 (June 22, 1999) Minor fixes to Allegro code, extra debugging & log output describing machine specs memory allocation, now gets Booter version from its own 'vers' resource Allegro_finale.c : Minor fixes by Mikael appkill.c : Removed dependance on CScript.h BooterManual.html : Documented new machine dialog, new 'Debugging the Boot sequence' section which documents the debug levels Dialogs.c : Removed version resource reading stuff gzip.c : Some incorrect calls to ErrorPrintf() became Output() MacBSD.h : Added a few prototypes, moved some extern static declaractions machdep.c : New functions GetNumGDevices() and OutputMachineDetails() main.c : Added call to OutputMachineDetails(), changed some ErrorPrintf() calls to Output(), added version resource reading stuff Prefs.c : Automatic version stuff from version resource Output.c, read_macos.c, read_ufs.c, ufs_test.c, videocard.c : Some incorrect calls to ErrorPrintf() became Output() ==================================================================================== * Version 1.11.5a1 (Nigel Pearson, June 23, 1999) Does some additional checking for Mac partitioned disks MacBSD.h : Added prototype for read_Block0() read_disk.c : Added read_Block0() read_part.c : Changes a few '512's to 'SECTOR_SIZE' and 'scsid' to 'SCSIid', added some extra debug, get_part_sector() now calls read_Block0() to check is disk is Mac partitioned ==================================================================================== * Version 1.11.5a2 (Nigel Pearson, June 24, 1999) Backwards compatibility with Think C v6 (partly by disabling Display manager code) Allegro_finale.c, DialogMgr.h, Dialogs.c, MacBSD.h, machdep.c, Monitors.c, Prefs.c, RequestVideo.h, ufs_test.c : Think C v6 changes reboot.h : Moved from sub folder 'sys' to source directory & renamed 'sys/reboot.h' ==================================================================================== * Version 1.11.5a3 (Nigel Pearson, August 29, 2000) UI and code for reading partitions from IDE disks ATA.h : Stolen from Apple's Universal Headers (not in Think C or CW9) boot_vfs.c, gzip.c : boot_open() & gzboot_open() now accept a device and partition BSD_Mac_Booter.rsrc : ATA UI, Y2K in copyrights Dialogs.c : ATA disk UI stuff MacBSD.h : Added ATA UI stuff, device enum & struct, updated prototypes machdep.c : Added TrapAvailable(), HasATA(), ATA addition and bugfix in OutputMachineDetails() MacUFS.h : Removed prototypes of stuff in read_ufs.c main.c : Changes in load_and_boot() for ATA disks read_disk.c : New ATA structures, read_disk(), disk_name() and read_ata(), device structure for read_Block0() read_part.c : get_part_entry() & get_part_sect() now accept a device struct read_ufs.c : fdtable struct and several functions now have a device struct, name/device guessing code extracted from ufs_open() RequestVideo.h : Uncommented element in structure for some unknown reason ==================================================================================== * Version 1.11.5a4 (Nigel Pearson, September 5, 2000. Source accidentally deleted?) Compilation fixes for Think C v6 ATA.h : Extra types, and removal of duplicate typedef ufs_test.c : copyunix() now correctly reduces length when page aligning buffer, automatically detect compiler jump table when copying copycode() ==================================================================================== * Version 1.11.5a5 (Nigel Pearson, January 3, 2002) IDE fixes main.c : VM alert now will not appear if on PPC machine (for testing) read_part.c : Continue boot if kATAMgrGetDrvConfiguration fails, some extra debug ==================================================================================== * Version 2.0.0a1 (Nigel Pearson, July 12, 2001) Re-write for initial ELF support, and to use more NetBSD header files. Won't compile on Think C unless many #include <> are changed to #include "" kernel_parse.c : New symbol & string processing code, and a new function kernel_parse(), which is similar to NetBSD's loadfile() loadfile_patched.c : Slight modification to NetBSD version loadfile.h : Unmodified, from NetBSD distribution's libsa MacBSD.h : Added some Unix types, new unum, changed prototypes machine/loadfile_machdep.h : Some hacks to get loadfile.c to compile cleanly NetBSD includes : Mostly unmodified headers from the kernel source dist. Output.c : Added new debug function, hex_file_dump() partnames.h : Interesting partition names stolen from part.h Prefs.c : New (automatic) version detection (still unstable) read_part.h, read_ufs.c : NetBSD headers, structures, constants ufs_test.c : Header & variable changes, removed symbol, string & a.out parsing code. Automatic compiler function jump table detection. Copies smaller memory area containing copycode videocard.c : Changes for new symbol/string processing code a.out.h, dinode.h, dir.h, exec.h, fs.h, lifhdr.h, machine_ansi.h, machine_types.h, MacUFS.h, param.h, part.h, types.h : Removed, replaced by real NetBSD header files ==================================================================================== * Version 2.0.0a2 (Nigel Pearson, July 22, 2001) Now locates ELF symbol and string tables using post loadfile() processing, and sets some extra environment variables for the kernel to access kernel_parse.c : Now iterates through ELF sections, new functions to locate symbols & strings loadfile_patched.c : Deleted loadfile.c : Unmodified, from NetBSD distribution's libsa MacBSD.h : New enum for kernel type, extra prototypes machine/loadfile_machdep.c : Load headers from kernels, correct ALIGNENTRY() read_part.c read_ufs.c : Removed un-needed code & includes ufs_test.c : Set MARK_START, MARK_SYM & MARK_END env. variables, removed find_sym(), lookup_symbol() and set_long_val() ==================================================================================== * Version 2.0.0a3 (Joe Laffey, Nigel Pearson, November, 2001) Added code (Joe's suggestion) to prevent removable disks from being ejected. Worked around problem with loading kernel from UFS filesystem. Changed some debug output to different levels boot_vfs.c : Added boot_rewind() gzip.c : Bug fix in gzboot_read() (re-entrancy bug after encountering EOF) kernel_parse.c : Changed a few messages, added 'struct nlist' and compatibility with extra magic number types MacBSD.h : Added noEject & boot_rewind() stuff, deleted 'struct nlist' stuff machdep.c : Removed erroneous return in CheckHardware() Machine.c : Added noEject stuff main.c : VM alert now will not appear if on PPC machine (for testing) read_disk.c : Added detail to, and changed the level of, some debug output read_macos.c : Added (to) debug messages, corrected return type of macos_read() read_ufs.c : Added some debug, hack to fix UFS booting problem (disabled caching in read_bsd_block() and ufs_read() ) ufs_test.c : Boot on sdOnUnmount instead of sdOnRestart (to not eject disks), Search for length of copycode() instead of hard coding lengthm ==================================================================================== * Version 2.0.0a4 (Christian Grssler, Nigel Pearson, December 19, 2001) Added Gzip routines back in (they were accidentally omitted in 2.0.0a3). Attempt at using Christian's code to process disklabelled disks. MacBSD.h : Uncommented gzboot_() defines read_part.c : New routines dkcksum() and get_disklabel_sector(), moved MacOS partition searching logic from get_part_sector() into new locate_partition() sys/disklabel.h : Added from NetBSD distribution, used by new disklabel routines ==================================================================================== * Version 2.0.0a5 (Nigel Pearson, December 27, 2001) Second attempt at disklabel processing read_part.c : Corrected/added debug messages ufs_test.c : Renamed to copy_and_boot.c ==================================================================================== * Version 2.0.0a6 (Nigel Pearson, December 29, 2001) Working disklabel processing read_part.c : More debug messages, corrected defective slice selection logic ==================================================================================== * Version 2.0.0a7 (Nigel Pearson, January 3, 2002) IDE fix copy_and_boot.c : Removed some old debug code, disable the killing of running programs when running on PPC machines read_disk.c : Continue boot if kATAMgrGetDrvConfiguration query fails, some extra debug messages ==================================================================================== booter-manual/icon.GIF010077700007650000143000000003740644107521300145370ustar00nigelunknownGIF87a ̘fwwwDDD""", pI86~`(JAQOltM {.& ~@C |*&c`LzKK<\ҕTsK9.T?4v~2vp# /") 1!D2LqY'#;booter-manual/icon2.GIF010077700007650000143000000003270644107540000146150ustar00nigelunknownGIF87a UUU, $믚A4&f7#w2}p3(aynJ3~`݄=t(\SG*9Q0VKyU%tF5g5dShYH%Ryf9g:9@(9Y+;Ku+w{ësu<3@;booter-manual/Machine.GIF010077700007650000143000000106120672320073300151470ustar00nigelunknownGIF89a1cccsss,x0I8ͻ`(aq hlp,tmx| OȤrl:ШtJZجvz`-Qa zn@~upreWMU K[ QiLGaJaGƭ Hݟ ߯㵴Ph;GK(tTxNa #JHq+&3jǏrUE%qӫ_Ͼ˟OϿ(h&X 6F(Vhadv ($h(,0( h8|"j0 f1Kn>o[llll2Ko5CBmVr3Ad&GLd ϐ K#4:o1Iͬ DdJ b2ğҎȫ. )4^@0xEY"h>b2SdV4'PCP"Bv/c8(>ħl~S >)Ђ^MІZ *ъͨ ю @*Ғ&M)PҖiP㌩LgJӚڔRKwz.)P1*RF2D")T$RQu*VZOzuKVX:ֲIfM*p\\U$]XQlk2 %nj9j[S f*,:> X;gɶdeUO;BrR`EAѶb +XB#&m'pkKSb[G6C2U`ٵe ׻/:FmrLycI\Q_w2,f|Irv$xSB\^p;Guof}R6LLpf`ήUckaK?wvp qlf1k/sk5XHٔ|/.> Ҿ57cfwW<񊭈5Of_ .5]92 v$&=wԺWƣ~,g{؆U/WIJsɦNG-d1[WD-AZX> {hX1\c׾+avue]dOI֬f6䜭ECI{Xn{7|igc=nwbMouvuY'v@Pvߤg}F; $^po`zdž_O >D%x.ڹVslޠ(W9Yr6 qk~\}Gyg$tˆy['Wzt_n6 ^Dm Zh/ߡBZIj/r%{<ԜvYjSʇf]xKx^2d7[wW\gacGWisjV]r[ХhqPjOHLEa?(^9fo7vtfݕ_xb!gEZ( _`g;fv6scBo8vOo6ve=(Z7rsO(vax_Qbcv-4g4\)}nG4dj(awf~(؅ES&^w'K#r%\}ȇpS8Lk)iDC{=ճJ'I۴P+|R;ǴVXK˵Sb;dkS,hokmoUIE4k8xZjط{V;g{hʓWK|Zo;B3|zVtA#`/리J:X@65w|/ߚczrI⩕`y4ךF야3|֖9JK hˋ &2Ku>IBjF JfA9̷Kˬ:^z7ʿb'fۉ2 DajZtDي$\Kӛ;]LX9kïu:eY4%[I9vGz-!ZIʕ⤠X6E&<[,zbNj+,ȃ̑["vȈƋ HȐ\\uɘɚɔy\<ʤ\5eʪʬ< ! MACGCon 1Written by GIFConverter 2.3.7 of Jan 29, 1994;booter-manual/Monitors.GIF010077700007650000143000000066500653722162200154270ustar00nigelunknownGIF89a/sss,/X0I8ͻCihlp,tmx2pH,Ȥrl:ШtJR{uzxĒznLۗ~GwwE P@\ Q H}}BT[Kxnt Ad̦÷гD׋E館bŸkGgz '>p7B"CaGKSˋI *%̘3Kn1(mǒ\5ϚPmNY5 :ň7-_Y,X ՘ O=ʕ .ֹx.߿5#È+^̸ǐ#KL˘3kϠCMS^ͺװc˞M۸sͻ NȓУK|سk^}Ë.腓OϾ˟O{~_߀&`{.5F f!n 0]h&$l+l3k-c56,b.2f$K6cRVGVƗ%[rd:d1r饘_IeweXONImjlfXex#t jgw%w2zg'硆BJIhnhRziJ*ݘj™髧J)f2zf|N멎%s*i+zZl#zE+J>ݦF{:b;Pmr m:qov;3ɧώ+7p ̬g⦅^k8oZ튎^9k% o+ ɾp8o j#.N5rO7 ԙ\Y 6t@m,NlpoMڍ NU-ot)sKvr}˛ky216*L͟n4]IfD全X{޺S{',Cr:/>9ۼSwkƓ>=l~7lI׭-(ga8,m NЪ>(@7`NFkt"ͅ1[ @ HD H\ DᰉP\HE%>Xax)#ˁsޘ@YHJбBbdc셤6da-F> 1KHU2h|-ɓaR?ߠ@GGRH$ ;)S2R^We\FIZRWYJ`4L[(4ed14Id:4f-AY3ùͥr:rR$~ H哜 $$IӛDY1 M{S8FNge%%i_QgG?ZO懟₨l;ޱq*UK3o1!T9)P/(ԡ0FEbQں25rBgC 팜 uhƯZu$)EUѵf5lF R4p) zҳlm]:X鳠El]\_ٙؽ,8X*W"ԲŬXIX΢|-EPf0n՚Юx](@W6aݭkZmvm`NҶ mIn+oJ8>wq ׭S9H9up=Qzt_xo>1p!ԅѽ~9j -fkXVxMfӎ׮/5qkUƍ5m9zcعq d2w @ KEn2c#mN.YjyvlS,c3GsM-5,Sb4bc2ta9Kcʹ$pQ6In^XL&THwӒC->5U;ծ0cmiZgzֶFs=aשmvu2, Ygja󸏸cZZ8%f.͎v1wGwI쒗.3n ֯FpdgӶ]3 28$k,&]]^])U`go~Lf_8u,go2ʱ6OyK^!Z È^[|lvO}:JN֥\ >@3 mK x(V_o쏞agE3~~G}׷~ߤfq]ٗ9dۧx]]Lxiۧyhxg#b|'uU8 rw|'9tW:zwug>7U>wAU98Fh =Aٶ1Rz^ŁK2fc\iqbT(}G(z0G_(kd8gxyȅfz~Jx]*g(|vx}#WeU'H7Jx=fP'v|"xZUk\VhUxwH]XWH#6Qyi}U(g*v^}lvJiLPHU8v8x8؎(Xq(5졏e!j-XvAx\4ȐÃFy>c8<!kH85)oh$ٍ(9uƒM%- G9I5h=6iv"wMy$!T/I$-_C6tBOnu#*HlƏZ"O4Ҳ_xXƝ6[XJch}+u@K^C2E0cr͛8xϟ@ JѣH*]ʴӧH=HJիXfׯ`ÊKٳhӪ]˶۷hKݻx-+w߿  /È+^lxǐ#m,ˌ`̹^ʞCM4Ө=Nͺ5ծc {vksݚ.D&X!Jxu`HbBaw-!)>8c({_u]8Xpcid3:ʖ0Y.I"/< 07^.f|1QRmRPӌI6cRjZ Ԟ/pe|S2Yǿ lv%<ϹHu^򖵴f$ i{*K?΁ EBO R-D# ȹͨF7ZƓ HGRw =i RN+i^*SPѴI)N]Sf$R\ɃPSfQ]<IPdzhIGTk xGvLW}34\I g\j$uZSݙ9nR5lZ?'ػ~OPUĂ+E@yrY+HZa)^KndzQ;cWKwE_fwS-f:=.f[M x s[(^՝twq7߽w5X3~ɄH^mufX:Nec~g9 ^m:)ֲoˮXq,``Fod:>:|:Q6g\7;'jV~dg81Ei%J7ϦVM[*ٚ1$uIʌlǘ%Rb&Uˊ)`Y35Pn#㌘693d)IX;?pA3%ܭY91tTfB#GrjXlXZ(r}^Y 4khݑ >me#^s0[Z6Tժo$ũJV64(a#v-Ik٭^ʈ GM|fCgWl§ڤvb#ؿ.f=Kihnլ?CĚ[~k~{P)j暼&l4 X+Aޯkw\,PK-ehhhsy$sv хNDߦsc( ]˷gKy4ԃ7oJzsKHӏk~>Un+Ўζ_ړP[/N`&6tчM*WMX¹Knļ b=p 퍿|Ö/.[3{}tyWƯZdҖzN<߲Ƨz?/j>jm j[ؓ5;r:؜nq|}1oktݺ2Z"IPeu 'z`x$Y Xx&Ed2V(Cx}%V|db fo Hj@_*wG͆/l聦M y(vU.4Ah2I*.;؂0wxE4bD~+؃*&d<'FKM'(xG}vOUF"k~Wk`H7n딃Z}1H;'|trw%ʔ|6؇vXH5t~9~׈$HhdȇX\MQfx+]e"guyt>fsƅȉXgA#)CrfI=88(ysM fjY݄hs]F3ryliq>ctOT[vAoȌxV8p&D)5˸MbC:*wrڨ>J1V*(a86Fɏ$yf(7qrr:<G"I|\^%E@IVY5Xg؋&gR9ȊXqf cƕRqƖqxؑsIuiwIy}fوp9YM! MACGCon 1Written by GIFConverter 2.3.7 of Jan 29, 1994;booter-manual/Serial.GIF010077700007650000143000000160110642621745400150310ustar00nigelunknownGIF89a9)9!(A0sss,9x0I8ͻ`(diplp,tmx|pH,d(ШtJZجvzxL.zf*|N~ߺW}kph ^ WR _ `^TiP]Yʵх־QOȭַ#a÷^dMǮ᪆tU 3"xJ C$-w͋%E{ӡL'Fs&ӤJD  ˇ*SĉΈP۹zTfUTWV!ʵk'?Rr4'ٚ;2kɔ)۲/Ɣ)^ꕴ0.77  WnrOW͍JltM}y {zv3iz^ʰ=&miͻo< N'(_μУKNسkνËOQ_Ͼ˟OϿ(h& 6F(Vfv ($a(,0^@4h8#'@)HH&8PF) :IXfeVn`bbih.H&bn)kwߌv޹_ '}'J8 h~I(X)z~n`|~*j訔桭h+&ޚ`J M'(w.#j䥎Z ӆZ!J:i:ij2;i۬6l"վKovk.pɦp!rKp.;.[< S,.$.SL\0w|ܳA0{K'pɪbS:GsA<&[}۩i?\T o_ͭIvEӼ3 sڻj^C 2R:g- wcNug~91-k㛻-c[m.95>e>}9g :bͻ𐧌Ǧ?w:75kزompӃ~K8ҟvS p $ v̠78q <("! WBb0_(PN410B9졢tF-E1*Pχ 5|M<"ݤ8sAhB|P .U[$F%-Pӛ"741"$ 0d?2SW{(X&27*#7Cb^5WX+Ron{B2+cqkZ;M5VLV$Ϗ'S|ݬwT_#EAr"WxVoYIaFm9[:CU޼=d۫,ek_,)|OϏ'@'Jk[>+[gu+]ӇwT9Oٵ?3~d[O.J{T'i[倚}n6UNIvDFU 5\)F?t$}O~ڔw EqCf(׳\C5;P?7%c@SDs%seGFW9YPgtRy<YzIxOuMJLxoWuPsWUs8!{x*vSjE/6Mb_(Gwޗs<^}M 6nhI}ogWxUYwȉ)PQXoLWlO%g18c+hH{wyx*G7;WFuFX47qcw\Bbo8HgGeJ HTSUhLi戎,5zH<(Y]X~Wz's҈|,qxdgS1;'}33[ yU3(? yjY Č_^Hy&yHY1ٝɓ9Sdbyqo2gIFh)wHx7钟k鎠Gway}xi`}G&-xiO)IK3ei!6igS76)91;#x*Wh)*xr MIucB>~YQ|yWM䙞v9]rj`]CZT ;TkZZadXt1mi:ףcr sɸq'mKWꈖztwکmv:cWu`ڝeת%ʝ:rʇW㙫xGr%:foehJTnC96zF*}:WƊxv9Lm{z>׍-'J^8Jm8MǮ/p{zgPL8sI(? ʹ?\Ii O1**sJfn_| U5Lz_:x= ?;],C-P>b&˽\^`t|d]f}h_|XKPZ]Q}#rԊzp]$ Ocb¡{`6nM07^jْL|xV[Jy{tח-Rm7[8lC;ǻ(gtĂPI  ',$b ROwS-=ۋmzyDXaxS[H$Ɲ iLEM9>bdf>idٛ+]MK]x^zc@}^b8\1P.G].K0ڍ4C}J$-;Ϭ ާ_@:tx٘9L=}ުNDάB롍#-o溎_N'l>pw3wn:d-ޫ%?^YZOV;cMrW$i_|~ ʮ†{+5 >\쐉>%5ǎ;ono!.NNW.K$_۱-TN~lI]3+vS}l?uFoHzXfUbĕ6~>Nrԏ*n*&sm$\Ɉ~EAYLb\ߟؖO1^Y;ĐX]ދ 7m,v9(Wiܡ*.STZM{(y4gɢ2jnoN5ѭZ˲ ęރzAG/`}_ՍN(K>a2.P`~:^nul:f2ZJP(rzvK&myhF{+6[cy_뇀A%[hK}mgvo_jcX0&bXwRGv_pl VF#raksQ(>u>*s=L6p[/m=`kT~D HV*\mÄ6dPĊ3j,xƏ=y"!F$ɲ˗0cʜ M+oɳϟ@ &ѣH*]ڎӧPJ*(իXjҪ@SCU'`r[yBCSZlvV-Ɏ<+3Pٚ'FhζD9j- 2 Fwt( #-5|Kѡoy~*ցʆnY33X'R.nzω4((2آ)?omda_ҥ!qH%_vYt"dZ株V+\eevm\)'׷n2l l/\rƽ+8K/b 'B!ÎXE7Ń떽?jxkl{ ##L-W6$']6S>'jvȶ#H.=gDF ]ǚ{w7 ^|v byer'Ɠ8vj5g8}?O*yӜ37|| ZkcyL㈷^uM97&yWrڹ= wBbhmӄ;7m>|eb<츃.?dlp_=8)߻VEJwPt'm?F8wp*;a) \qOqCS-M+hn؁'fku2tqBPz*A*9TH2EpaX ʀ™'ċ0ۢ[1f`;sfF*.%^g#KF7x#>1e Ah#"ȭ(񑐌$'IJZ̤&7Nz (GIRr8*WV򕰌,gIZ ! MACGCon 1Written by GIFConverter 2.3.7 of Jan 29, 1994;booter-manual/TO-DO.txt010077700007650000143000000030130741505256100146370ustar00nigelunknown Booter improvement/to do list ----------------------------- Bugs: * Add workaround for having to reset PRAM on AV Macs * Cancel buttons do not cancel changes made in some dialogs * Problems with "Minimum Install"s of the Mac OS ? * Cannot open/locate locked MacOS kernel files User Interface / Functionality: * Boot from network * "Open and Boot" item in the File menu ? * Ability to "Drag and Drop" a kernel file onto the booter? This would either just set the MacOs kernel file, or do an "Open and Boot" * Multiple Monitor re-ordering and maybe depth/resolution changing. * Printable/Clearable log window ? * Redraw log window after 'Cancel' in Boot/Cancel dialog * Simple Booter extension (like Das-Boot?) which uses the same preferences file ? * Ability to open preferences from multiple prefs files, or multiple sets of preferences in the one prefs file * A single Preferences dialog that has all options, on different pages? Could use a left scroll box with different icons to set up different options, a la System 6's Control Panels, or maybe a tabbed interface. (Scott Reynolds, 15th September 1997) * Nifty triangle or popup thing for selecting disk (SCSIid and/or buss) and partition to boot off. Could also be used my MkFs and the Installer * Set 8-bit colourmap for non fully-supported graphics setups ? (Nico van Eikema Hommes 12th May, 1998) Kernels stored under MacOs: * Add ability to boot from tarred kernels (e.g. netbsd.tar or netbsd.tar.gz)