booter-manual/ 744 1 1 0 6413511312 6506 5booter-manual/BooterManual.html 644 1 1 62412 6413510214 12073 0 NetBSD/Mac68k Booter Manual

NetBSD/Mac68k Booter Manual (HTML version)

Version 2, 27th September 1997. For Booter 1.11.0

Index of Topics


What is the NetBSD/Mac68k Booter?

The NetBSD/Mac68k Booter is a Mac OS application which boots the NetBSD/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 Loser

replacing J. Random Loser 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 under System 7.0.1; it should work under any system from then on without any trouble. 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 Mac OS!) 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 NetBSD partition, it will take a second to search for it. Then the Booter will (hopefully) identify the kernel as a 68K executable and print its entry address, which will look similar to this:

MID_M68K executable: entry 0x3356.

(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:

768400+57532+99064+45588+48244

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. After the kernel has been fully loaded, if you specified a mini-root image, you will see the following message while the Booter reads it in from disk:

Loading 1048576-byte miniroot...done.

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

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.

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 debugging info
This option tells the kernel to display some extra debugging information, as well as telling the Booter to display a few extra bits of information. Most notably it makes the Booter dump the boot environment, a list of variables not unlike the UNIX process environment, into the status window before booting. For this reason you may also wish to set 'No env dumps' option (described below) if you set this option
Kernel Location: NetBSD/Mac or Mac OS
The chief purpose of the Booter is to load the NetBSD 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 NetBSD file system. However, it is also possible to load kernels from the Mac OS 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. This option should, as stated above, normally be set to NetBSD/Mac
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 NetBSD 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 that
Partition Name and Root SCSI ID
The Booter needs to know which partition contains your kernel, if you are booting from the NetBSD/Mac68k file system. If you do not enter a partition name here, the Booter will make a few feeble guesses based on the SCSI ID you specify for your root file system. For best results, then, you should enter the name of the root partition (assigned when you formatted the drive) in the Partition Name box, and the SCSI ID of the drive containing that partition in the Root SCSI ID box
GMT Bias (min.) 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 Mac OS Map control panel set with your location, you can enable the 'Auto-set GMT Bias' option to set this information
RAM (#MB) 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
Ask? (next to SCSI ID box)
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 (etc.) For normal usage you will probably want to leave this blank
Enabled? (next to SCSI ID box)
This option will allow systems to boot without a root SCSI ID specified, e.g. using NFS filesystems or in-kernel miniroots. For normal usage you will probably want to leave this on
No env dumps
If this option is checked, the Booter will not spew the entire list of 'boot environment' 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 before booting' being enabled & a nice, big boot window. :)
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
Show dialog 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
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 NetBSD/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

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
On kernels with a really new serial driver, 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. NetBSD 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 NetBSD/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, NetBSD 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 NetBSD and Mac OS) are usually considered as modem signal pins by NetBSD. 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 cannot change video modes very well. The NetBSD/Mac68k console will work with almost any depth or resolution, but the X window system (and maybe the DT multi-window console) cannot.

This dialog window allows you to set the main monitor's bit depth just before booting the kernel:

Picture of Monitors... dialog

Note that the Booter cannot currently change the resolution, or do anything useful with multiple monitor setups.

Preferences 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.
Debug 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 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.

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 Mac OS without it!
Partition -1 is nonexistent. 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. Hint: The number in parentheses is the SCSI ID it is looking at.

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 (with this miniroot).
(etc.)
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
(etc.)
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

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
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.9.6
    Author: Allen Briggs
  • Allows booting with larger kernels (many post 1.2 kernels require this Booter)
  • Known to have problems booting the Mac IIvx

    Version: 1.9.7
    Author: Steve Brown
  • New 'Auto Set GMT bias' checkbox which uses the 'Map' Mac OS Control panel to set Unix's time zone information
  • Known to have problems booting the Mac IIvx

    Version: 1.10.0
    Author: Allen Briggs
  • New ability to boot from gzip-ed kernel files
  • Known to have problems booting the Mac IIvx

    Version: 1.10.3b1
    Author: Nigel Pearson
  • Some user interface improvements and new functionality
  • Fixes the recent problems with booting the Mac IIvx

    Version: 1.11.0
    Authors: Scott Reynolds, Nigel Pearson
  • Latest version at this time. More user interface improvements

  • 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!

    If you have a bug report for the Booter, please send him a complete record of your system configuration, including NuBus cards, along with a detailed description of the erroneous behavior and how to repeat it. If you broke into MacsBug, you should include the contents of the Standard Log (type StdLog into the MacsBug command buffer and hit return; with luck it will end up in the Desktop Folder of your boot disk.) Note: If you got past the NetBSD copyright message, the error is probably not the fault of the Booter.

    The long list of people have worked on the Booter: Allen Briggs, Steve Brown, Chris Caputo, Michael Finch, Brian Gaeke, Brad Grantham, Markus Hitter, Dan Jacobowitz, Lawrence Kesteloot, 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, etc.

    Apple, Macintosh, LocalTalk, System 7, and Mac OS 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.

    This document Copyright 1996 Brian Gaeke, 1997 Nigel Pearson. lease send him a complete record of your system configuration, including NuBus cards, along with a detailed description of the erroneous behavior and how to repeat it. If you broke into MacsBug, you should include the contents of the Standard Logbooter-manual/Booting.GIF 644 1 1 25060 6413444741 10556 0GIF89aC̙33ff3ff33ffffff3ff3f333f3wDݻwwwUUUDDD""",CP*Ȥrl:ШtJZجvzxLɑzn|N~DG{+(z )+%|(xjwCB**jB+m#kx*BsْoѺ溮x v%#|+j=sފnoD[87IH1S:@RȣjJ3B %ߞ;8pNm49bg<լ\ʚP*9PH+JJuE6rr$IgE6ez, CgT8K6yg>7dÆ'طrVb*^*H>`AH<:,oKc#PNjmgX4?i}$aEyXHBa87I 1uYYR֕Xw -݌ؘh> TPAHigD ֩~)Gs(|y|&~A(F*5J饘fZv駠*ꨤjꩨꪬ꫰*무j뭸i3+k&6F+V{,+`mnm~+nkn螫nn+okoޫookL' 7G 'l0 gw ,$l(,0,%;L0'}<-n`D't,0KG-uF+Xgcu!eaSe8LohQf\ ׅT}x nJ?5SfD%_bw]wpmv砇.褗n#oe.n#*/o'7G/Wog9ۇ/o觯޽/Eۯo ~L:'H Z̠> z GA(L!2K~ e<+Ao£pd\o@ "搅\@&:PGky(﬘E/W'2hNB$P ȻNx̣jxs@龺<̢ 10:$ ;F2}7G"qcueiL*WiF*n‡K,BHV28ly+ a_ٽ L2hB:l 9Ij&Ciݭ8_a7ozӏZԤ5Y?OSci- sD'B˄TTg9NRͨFCLg/#=GIW h8Y[ 2(EUPu“$NiLR ">ISsHM*]ΐa/CJic4g0B՝0mSqzT i>GT ՅN?lnhEV(YzShsfT%Q;Zl_͇"],Қ,jW*~UkgKjG pk$rMr梖rKZͮv֊'aBs1,`f%z 4 ȜNwa`K}~s--4kRž  8 ̌dkN3}l%@ ,W`67; FBmldSANpVs n [[d&Qhwzެc{c^oBVBq?[fF󵙀fBC[vv$Z#CbzѶuyTyvuUiVyUDP\̪7|hB%G;77du8??:SvmaxŮec6y>!`z3z;lH/ANoPhzT?w vM\ܮ_oϻϠ^ﱇ yy菛ޙw@tٹ5c>;}}ty)x#zw>]|!npl|qg_y=9-zũ7șy'cb+f}2}b|}KPqnz(sW=dFxv8zowp}}}Byvix`~wjvvXoF.fwtg/GhvW`}{9DI{XeXJuLQ޲Ry^"d@-Bb-Pcy~8RT-VYdx6mŰmjI`0{YMzcIeVip ǁt'zpxotՕivmN~yY` "A5yiMhlOfGYgAuo`q6to&qwhvwqetQlٜh} & 0huX } ȑ;#CnXi'ڨGcvXs$7saxGvg~w=f G RfwnM(JUpshY|-%ZwF}uX4zɠvJ%gxv79\zC+2JNh07\ʟ,Wf&jG#ҝzpVtft7 gn9Oo--N|GQY]zl*VP<ڣ[釆76oyf?etigz|؂6ڋVrʅڢ׈Ǩe_&G?WovqJOwrp;h^ijkןxzfx؅2xx`9#OɤB$ƬϪgꮹsVw?sgg+dy:c*۱\Iz;+"K(+b))۲Sf@.;K8a&9 " k<۳.i+Hk ٴ:6{N lPcR YUWKcY!˵]XDua_[8vk5Yhk[Mhk\c+l;E\r'gfshuĴ}+C¶ωmlpYwrtp^piֹypbK|۸Ǐ"ft ;x#{;낗Xry_K`[ۺK;=XSxh{姗lf}wԫ)xxik_Kͻ?h~+Hghֻhu+j{ƍIi{b?hU:{K J(LJ[\FhRؘUKX[H( d~1Gxe6wKMɫ#)CEgzѷwHz'z˺=a_\\H9a5/K]dbnu|g[˒sbwbp3y`˾z IqzRs7gpHҶYFזĢ`b ,lQƇxv^z}nRwSLALbSKw;h|NϹipOxlhaZ/gh;gr3WIο\b̷h#:`OKs{h{x(],PoX| H7ʨQ bKi~Hv`*Z(_ =g;Ȅ\shh~c%sRT]k,ԙ-==h(n駐/-l0Kì1h?*l++̈sHΉMr+;}MatM;ggQS' -a,]A9 qu ̱ݹC ,Q[؜Ѽ8we6GCq mZl\D-ɓۛT;px1ZV-ݺ ]ݬ"Nk)߉ڀ=\MƖf(뺥ؘց]lߝ7\\ߙ.=]-vk6h<^un*P,JԌl]ٚ_o :^׸w!ٴ''sgĦe:fpӞ]\kXx# ٌ_ f֜t{q&t<}bH] 6\ xR웻ֶ̚{๏s7} `rw6әgЩ@+?`ɏĞ$߳ ף(WX܀|Xone6R]4xXLۺC'`*^ؼX}$i9k ~qDoQmw״z}la-=:Fl&(V~UlpZ ޞč,I /`Z󍵳n=?_ "\~PRY@:SP_m%Z^X|eO{h7}ŨXh><_[}rFgػVXְWo uGɪ/_mhfielk@}b_K9z*Ϧ˵H`ۈ.vpGѹ$ ̣/4+IrhHNzO]BYp:HĕhO$Y\)Ly,\6 {uSzy N͢"&+* .C.JMKFXЬ8!dHz6} ؊ y}9#3";q똦@EEOMS?FJL Ok4J0OdM;MFY8bE9Z2)I,$ eEǍGF~$'_-uBJ*#J*1,J2\ EOF$ 鬦UM[,b\t/"wpyb'ψЪSt+%&{D0%Ւ.uTǏ!G<ۚi/ؼs{)(%v##%]@ɷqֽ{Oe˨d ǍG-- G>:RSnltdvh{yы=􏛋H}}))8Ι ,P!3:|6P 6Fi0@g4 Q˰gkYl ]?VG@R 7 cF;l?ۮ%]G~TҎzDK|R4fmXH49K)O1-MMK6[D!Zro__*(?06@lCඖ@ rhZ0XlPUtO(y3?Mr75)%+C/8~7$ D !i81Q! PA3jiSyTFuO(^ǭh+IԹ̘*1EW| 3U*քDv8O*/-uH(Sx3m~] Hk (,Fe$\XXmhSA2Y[Lǭ]Ra"Fj06p3&Ɯ| ;139-JnyB]Jޠc( , tJ7\`]NO0b.y0 (LgBC MMB.r8')ԭiZEGj28C `K)GQMXnFHV;lTY4 etli<Ѽc`6jQSU >bj_Qv(vAɊZCް:\$ Kʸ0 00PU1ɠD*xl`gr>(e&Fg1 K JGUE) j^Yi*qUNq0Cz)]ˋg(qB?pXH>ʌx )$Mj~)"P%"%$ i/ UֈI yA5giX &_ʊSxJpiIedp^$g``c /%YN*(X\(,Od+tj"V'vHmƪ깰vVF O é !-{qɊ4iNDFgP%kxdF+ȯvXi>q> (Vלh۪ GiVͼ@BF /0* ësoۦ 8#'Bf NJN; YPFB ps  (KD$Z&bR/N4&K'?‘W&?%J{kh,b_) W+RBi e#ApK*^$udlk,22ʻxRcd'ҹ:G+R.9rvK% Te,,ޔ؋w17 5MVx e;fӿ|ӊ6P~)r9#9s:eԮ3;8H:;8<:;s=:<3>[5S>s9C 0R;5=5M*D@Lг;Cr /@dha!M3A7M Aovp 0(LOB-tdE+ ,t4tA>-M IYxaDSct>w)8xPJM:IԺD~i?TGoga2[l!'&@$!t +й0TNBɴat\2 l"B e`Q J\#AQ@37=H3 J_efRj_(4UA?TLPNG)p'+vL@YE+FX٥(h+VCQ/O#Zh1s^Һ2/9T*d+6\O '5l(*]5Hjw6;sgb3cb9vb5V7?6xTLdU=sdf 'fevfi6VXa+g]vL`'J hvhhh6iKp]Gd{JdJRvT@.N`jkGCLug֊Hfvmei' mvn]JseY>ϖT7bH`lQ'7Wg.ғqVF@rvqh&W,sv0W][6rir=7uc%tLs9Wu+wqY"B;MGP7P$R`W~vNfw\r6kJ.Vv8imv(wdj%z{Q~3nKzWxawwy{rAUz1z;z%@y{z3s37'rW@X|!'nr}edw׀~.x :wNtu a|;VgEс% (X-8!wY!WUmQxP ,8vw7iׇog7jx7׆Sx4xxKn8t-ׅE>vccx~Uee{mxns‚A7UutWݘ8pdU~w  X!!אq6|#Y} Y{v3kvW9Cx^J nfA97VQYK8"؄r=J[_XcXߖyfGXaV9f՘l!8zD86hyz{Yyi}oViyWxk9my hLdztϹB&O!:%z):d㶢5z9$额ӚAkT@٤Ok7]$ zyZhMClYe~:%ڞm@\QZeE:::KcjWܸ:om:::sZ⺮UZzE:{ ;{M-H ZX1;5{9=A;E{IMQ;U{Y]a;e=gq;u{y};a ฑ;{;{;{;{DZ;{ٻ۰o(黾;<| <|)-1<5U|miE|IMQ0Cz)]ˋg(qB?pXH>ʌx )$Mj~)"P%"%$ i/ UֈI yA5giX &_ʊSxJpiIedp^$g``c /%YN*(X\(,Od+tj"V'vHmƪ깰vVF O é !-{qbooter-manual/ChangeLog.txt 644 1 1 43254 6413270024 11212 0 NetBSD/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. Y'know, 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 didn't 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 wasn't 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 it's been malloc'd. Added more EVENT_CHECKs to copyunix(). Used BootError() in more places. videocard.c: video_call() returns an error code. (Hopefully) more informative error messages. "Don't 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, etc.) 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 'static's. 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, I'm 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 I've 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 #if'd 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 _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, scottr@og.org, 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 hasn't changed at all. Consequently, the `Save Options & Preferences' menu item is now simply `Save Options'. The `About ...' dialog's 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...' Dialoglds 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 hasn't changed at all. Consequently, the `Save Options & Preferences' menu item is now simply `Save Options'. The `About ...' dialog's author list has been spbooter-manual/Monitors.GIF 644 1 1 12364 6413444743 10774 0GIF89a̙fff333ݻwwwUUUDDD""",I8ͻ`(dlp,tmxpH,Ȥrl:ШtJ &vz* {9z͖Ä|ND~zmB|D fdAgo6D FRC ^ Od PoEpEBBCQ N Ox4߸ɻ  Dߜʼ#XƃiՄ`ӧP~v!5!cI]tHRbnMd^v)T?U@Ӂb!bK#3ƁTREn5#)Re)bjTQV[BR!+d#cMkhmKZ-EMz L'a,3-W`cB6{GkdusGɐwJIV#e@gPǓGb7eo24t^E. 7p+X67;촆S6ո{-l8wZw}Y_BXWl/x#HBJ~UڄICO|H9QHH'tDH'*uˊpw28X <#QDmLdPF)%ONiW&͖\v`)dihlY% tix~S 矀* pjsŠ&袃ࡌF*餔hf馂^'*jf3ꩨB꫙ )螦ڪ뮳ɚk .ZN- B*(0.׾B`+@z˨vk \0n: @JЯ ,p+.̱(n*-Xr),03$Nj[ɡV½#m,H/4Vs^-`,n<54hw-o+ 4[SJ#-wӸ:C d,,/Č*.6 Րwu➷We\.zc G~q"⊳ +2;ᮣw·'~|̾3:]L`ܺNhSSWų?z܋W?|賣Qu1o|kA̕m{پNy? ׇitJ(ֱ́Wfe tٷRx7tݯ~|{b-[/sw_1oJĖ7s &V.HT1X-{&.zW`495Rm|9ڱS+x+}LTI dX^-O" 41J&o,B,h@:ՙm3eC laǴ?[ :m徔77L5vՑLÚKx<8׺)P'WJ-pp/ÄYZR qaaqc[Hq@ +شnaYhڏ2o |SN3n/ESXoϲ`Q;T!Kk\L$.h&Ժ״}=M55ue? GJ`U-b7-Mc?3V$MDUũ.~kwa6XV .v5Ԛl9'ަW6sɪLkzgVW!Ӊ3![Febw۸Jj띃#\, gV#_SZ2qww/CnZGO+ruh8sAuTxʇUU+S{3Va9sb󳱕Ǿ8pk2̆wDr>O Qv:Eu}kXVG欚YhwH+ζ3q/Iܐ⣷mhFw u1h[ Яe]x2/"5}Z%zmf 턕5k-8wЃ>sO/ou-*Pѡ߫gn, A^_:]w\og}6˜;rѿ]_B8{r6j_+?Nx7Fxg s׀z 8Y go$(EXr(3pEu@1 0OzWf(2r&2'}@\hP.;8gK//12Հu"O$0PR1*ӄ9xB(E(HGJ/Tc{P1E3NՆ4uX@Oӄ02iHUUbDs1}hXxOhz/e6b(/uE,C\zɤ{3Z883,/e؉4<.Y#Y(xBеJvcyI֋$b'3Jh253YWUX؄ݢ4WM.xЈЍH6{/7cHcdRO2x&(HȌX@)cH2cXӍXA x%􎆄Ic(O yq8)Pc騒Se 2a/(,O8v)2S82K0y2{88(ٔ蕯X(YwRTy1!)idz芡Y畾茝ȉU 8c犤X( ɒ5S0,Ø(l nM*_Gs號YxvtٚΒ(9F)%ȂBo`r/r,3J_i˩o͹ũBLЉɝѹ9mqzIYO_ܐcxc?y*C~`HHq鈣8膂H\J2L6I9j*cU Zx:Zz{0(,(i-e.+zx8d=#*8أ479 ҙ 313:7٤=hPJGCE:%: `y"BxM*xi:1 G!cZ"ψ1z53wڧ8Pez2<ȧ({S  Jt3?88{U*5igI2}Yɟ?ʋZȏ٢ ^'؝'C 3Ü ٩ftVH'kIK:S *&=H{Ѫc94)_>ȗIH9Ghə', 2괌 BCszq,yS8Z-ZㅯsBy|h[ZPɋzd(ȄkȢhJSqJCx19%fI鵉겷I[EE֍lZyYW:uثJd6HnZfjYF[tfҭF Hy׹_Hd,| 4њ"j1`d61Я2ҊnK]O5-kҋ8@շE6B+ڱ_zn {ɩoifx2(+4u xsz[OZ3P;xj{3y0ˢ 9W sB{Y[ 7` ^ڳf ۹TڿRU yMk6(?<Ôk ' M*3RO<|]ˢ2[H5ܾDLvz,c2i;^c+kضlKǯʹO u:_. ]K\mǐIϪR;H]`;Ԣ{t֢l\˄Ƹ|e{ȾLM(vļ|gЬH<'ybđ '0</9OtS?]A]5=10`Q@M.2MIV<^M/"1h-R8$=.Ā^֖ҘTCMih׊][a-pm3>|`OmBc@Q\M^U2ԀMΣ}`ҝ;mS/hڤ}څ>Hm@Cȍ7ٍBq]ηm={ ݧX=0sbwuސ-"] yH}ە6 ޖ]l}رMGم}_KM( <n~յMsi߆TP% " U n8ޚM3Rj,nR? ڨPNRnO~L^=ֽb\>N>c}.m@r>-~UEz òЌ#ngNхNrM0҃ e萮;v`N `S'Nhlˮ^볌޽뾎I2~T~Jʞ߷>>(Fn 4>~8(%KR%^nm%^_s o";GIF89a̙fff333ݻwwwUUUDDD""",I8ͻ`(dlp,tmxpH,Ȥrl:ШtJ &vz* {9z͖Ä|ND~zmB|D fdAgo6D FRC ^ Od PoEpEBBCQ N Ox4߸ɻ booter-manual/Preferences.GIF 644 1 1 6635 6413444745 11411 0GIF89a ̙fff333ݻwwwUUU""", I8ͻ`(diz@lp,tmx|J(Ȥrl:ШtJZlS0hxL.\loM!oL rRG k~kuH Ri U2wKGF QTȃ]F> E EôG} IEͪ(xK#B_N-Q )\&!XEn#j(%-۴kb6pF\at\ykxgSH{zhLW@jLՠB憞s"Yf,KH :&JJ\m0MmsMy6Hc$fW3Ӕ4itt7:MW꒴2# LɇOϫq})b"cM=yj-R;bx{ӫ_Ͼ˟OLBP3h& 6F(Vh't ($nW5ե,ǀ*(41֨B+P)nڂ{@+;/ko"; L[FL|k^uu^*q6 LrŞl." 22챼Z'[񺠺@~\3B4˕5;9K?'Ǜ,b-379tE;MpwwW?Zw٫7qcT"#}zt+볢ێ:v⩪-; <{p]0K5\ϾqujXٟ|.74pvx~/ >+O%_~ IF$`vV&OPb` BpI@X`dl-ETUx廘荄r 3pa 0|u-fykyJVSa[â+X45E p` /'6ˍޕ5+u=yxWF ~ū ;SEK,H z.C3QprsˤEJ,ro#SҔ\\ XL=Wv()9 [޶7X63[f)7I{wrF2|6ɘD+U`Nmέjt&uӝf*8Ink]N j&?׹bj@t9kц2t.^ Ģzcܜ<5[$hHkvu<jSAc` ;) p-d$XbU )o8j)lDOкZ$\%He[qW"ih-"zՈ| ,X$-a{Ďcn*K3 r% >+U/$mL;kU;+ik݇˶*^;JOk#&|Ir|q,p,=:ޢVevGJ[VLZ(:8hTiM[WjJ#c9c(WW Sl(0^%Ysw{.LKi:4&K7`԰T"PsI8};|mi_{զNm;֜mHu`!JTWR]+ ` ~gޤ6vP|~yJ&U>x][ nYn,Syxݿ^aiWVYx%"O\7{H:.>}6_) /ʹrl4 tV/\{nW0퇼QE guUxpW>V#PUOVOϾ{_+g Fw@N=ϩߦ?ME~x?X|F}H'XҀh%Q2m xy~hau%>W"~!'qׂ.ߧiF7#j6x Ԡ~>`' TtwI| i5j9%EG4bQ(W4AuNi]"3ma8{'*eU_UֆSt'sȆuE'qh_*焲m{{h("{0y(@o"q|gmyyH%_{Hw7WyqH؉mpwHcWgtk(X[wIyh+G8*LWdhixtFvzꗌc)7vyrvxtgL(;Hos6lVIsoHxv|)lmh8e8(v؆w(>ʨΈ#6m 3Ht/7y%pn(l8o֏2IAGqȓz;Xh׈EiȓȔ8Y3}iɖ؇fp_yWNIЋ|rY8yUt9WX?Yx~Xw~9l)(yNO =P, ImAit)p_fPh!ؘ%*XwعڹhrމY1yw(ٞҝy%9?RVf{Yz@#XZZzڡ "j! Z&z(:",ڢ.ʢ";GIF89a ̙fff333ݻwwwUUU""", I8ͻ`(diz@lp,tbooter-manual/Serial.GIF 644 1 1 30040 6413444747 10374 0GIF89aA̙fff333ݻwwwUUU""",AI8ͻ`(dihl tmx|pH,Ȥrl:@0 XجvzxL.zn|L~`vxVP3cX WUW Z ϙ d^Y d bԹBY \XV bֺ`"_`xgᗂGE_ @ݹI%X~"_D /敁7Xf̘\S0ŵ@7nK_T̙ӺTɯ`YiDZ䍺ȶ^F:A\VIk4gdo)SX xT?yә8By6AfdУZh3X4>ueaAcrXmT].>@tvH 'igDFbꪠ9`?*무j뭸x+찁I&F+sfv+k覫+%J`0,h& 7 gWl[g ,24(uG0,"-<83%@r> mH3L_I7Ӫ-=1TWm=3WӼA`+,u?]f0@v@B4@  _=xM"p`3(oveu'@v+@w@T60砇nF B{XkN< >C8$_;g=5S; p)?;P :5 ?ӽ7qceO|47}c 92pS0_WO0Ip|yax岭{@;Ms_$ tt#&O'khD* Ela(C&qxГaX)N]#07|,_XE!tG3w`#" I5bc!X)MmaDǵFGNv4xP&(7r_M@Qo54]'[D\Jl!8IfOq9Pq#eA)r> J⅏t&Q3 EAQ.g;~{cI+);8Њe{?,KmsCwRXөJM.8Q4|M(MYR}0:&I;4.VVUiXSlA(H&bIu )W~`+_G^Pok(b錈~ϱ-K62Ql@SiEVl(>^>[AGdkC=ۤny,jC`E*zmټMF(VVy,#D"2-)ӫin-wK_Rt3v[)_&@5o[;V׾wl;g쮋ϧ6Aϰp-fZ8jbze9Zm|\qr0>\';ߩ*[eúʳ/H/Af0g}y ˫F̓ oG׭pƋ0]|3!qiAMs7̟iOO/d!!^x~ uk=|[*=ρ v!8szK^xD<\[%xI; H ^n'#_҂+)5$./e7"].$ޛ8GjVnF}\ %pHo{:hmhfhzJ4m;UJwq!Z&RMH{#%\8H2 98\ttQGWXVxؖVgv}pxg7wjgTxsuyNJBG|FgoEX A{G|zS$%U(FXfgoWsy~JT~`H8FaXB3hx3-4Q0 CI$  yّ "j9( Py !T'6w&<ٓIw:wF9e p >T 1CGS9a2\ٕA 4I Q `j>j`Qs]X `7$~9` s ƐZٕٓ_oay0SKA=w a( ui9PB@>=()9B^:`WR IqXsty?M9?ٔ DqiC9Й92ĜIÉYxI0 КcJ2lr)CZ8i ٩KBFCP >wjYI\ 6YB>@`0TF D@9z>?3TjcXcX@99_e ƣJڡԗ 9 虢p,/ʚb)B@`)C>*KYsڠa{z>cxzUALjdڕj湦hڦN@`Dʧ槍G N9J6y\j*90q :YJ>kʪ40ʖ z۪#ʟI))>*,jd: A?{AT 7ZZZ[ 쪝SGBq.zh S餛 0W4%ZYaY1*M``1`70#;N @z#K{MX˒:Z^89bQ h7I#ٶnA Oɲصiiikb7Z.{i:1-g iDp+2ʸ"BkH/if;v{%aະ;;6V;578!cT%nG_G(qceSKnمfcǔxsRƷS˯T|R O OINO8,=uReF\yH{x~aՙ!{EEO֜OhE ߎEpYEu,Dд~+}r%^W"X_,,V/7-> c<M7iou@yMHX_F_Knl5ˎ35~pV!XniԮߘUV!,|*p.F_wtS˃~Z|tK{>LEMH s {* rԘL+0 & L_]yuy-\:HsY`7P(I&O/@cm놼LT ĸ0B .Tģp 7C?NQ @D1EW|KDWX1Fg1Gwq{1H!$Ҟ5,2I%drӾk2J)TH*2ԲK/K0$L43MTbM7߄3N9礳N;D4S.<4PA%M=OEE9qF%|=H#4L$DtJ?ԍ3ݎ& K)^Ѩ>WOЃdet&UR}=Mv8ЄajVjL$K^=4T`GC"^`X |{"#d I*k#\mƓZ@3I?g*smۻ6U3[)fqչtwcawZ58XZ#>^ؔfjDfLhf Lg&TXK 죋{/ݐU zSڢ:2Jd:KVz]"cqeM̽6HP*Xض! !?b/.lF+4Jnvo[ be}qZWn")=7d@zAd CSNs vcz sG7n2K^+F?*g>s?KV'7)AbQP:,(c ,6V ^t-O~ß~s^t?Πz;I,cj \TSϜagY|CDYԻbHӆ k$XŃ c"Bv0o?[8!C r@:fZw"h"9ѐN>T"ȸ4ґ$I=sd[BQɓBe*UJVҕe,e9KZMPfK^җf09Lb'AJ2E'Rޤ8fN,9M>]n\Can~[-JgC/@l뻜~ķcYܺuv,ccwh$G/AndǰDP@ܟWS#ュÏ gLPlXl l8ղ[ه?ӆl?CTp2qlt3I:ӗ'DS[. j8KR1DM3βۓN@((^wn~ǻv^xEݝy??>_{\\Lw}Ecf~؛}Uzַ'o9z'g${_^׼E|b1o?7 ߌUYz@+ 9F`#[²pO٧#c)܀#I!@T{2Fʾ It0][z,,Z =X"T .qh. Ě *H06 c2!0D\A[a$ȔW0:«0y*Qs1K4S#ܿD˕r@$h6 (J12dBưA9 ?C/$- 3Cӣ;3-*ɪZpDyiJ\KQj?4sY@ C1Tl&,","BQJ0.8>ˮ0vbdhbz3ʷ <7 FA0JjL#1C2nëS2ȓEoQ65s!B@p)oƎHHTZ~#\ӝ(sXGjI>F"pٿ99 Hm #䲎ںľL~JL<<Ȱ\KT/ <דAiK(K-˼LdKDJSˣ,-Y,K<|:LL”Lk)z\L9M!DT'.A@jG<%9*wпDM`+|LDNL$'dJFÙ/tN2 7|8;-E!2@kL ?n΋ *&ፁ@D2nxD/CLHcGTNR DD ȡ${7C %ȧ@j,$2$CUl m+C"RpJ7N4*PD[3_C9'0doZM2`QQWs(~RR5)05 IDRUR'eN7(% EDSџC3 4uQLR`&7 2CK]'Gm(4:L) .} Vi|O84R *TPH)|SK8%njU5 Ub5 euCc=|:Ldg}aVaLX TDLLmfUBr^}KqdW;ASiysKx|=(~p׀K؂=5؄U؆]Wu؈~؊uH=E.,a <C{R&)=)!ARO7Ԑ5a[eY) ID`V :H4-DF-ۄ-;M5ĢҲ zM\D-=OAMKZI*L{R8,GP*ڻ-ؤ+ڼ=-ڌR1Bӭjš/EE^$ ʘbȝ`\8u<]\ZSuE ]a!,N!Iot?+hK/V=ΩөϤ}Kvj"2G^t"*a(jˣT3@j=YܙZB(+-T^)z,zڨUlǾ=vH۵4} KMυ˖Mx2~h[ۉ[ Ė i^JZPέh1Y^$ҽܮEB\//eߥk55A^\PĐ@ae^A!X *h6H*_s ls`(C#T5 oA]bٱ EE 4)2<ވ '_w_ *^af_nN9T`Sl_`b #}'OLUdHQἲg-[) esa ;d9f%/F-_#2?%z{ar:t_kz$ECHDʌz>/P #N2ݦe{݁F\fp$redNd݈4,=TxCt+u"oJYveIHuRJFVf7ON6(d^XeʽtM's;rNސӸy^nSsFf7ͦgb<=~naN lg&9x!g~7~Pr^Odx}grVu\EaxjL|i;6&Y"hzi'zGkg^zุ=03ٞ5vNF]w/iJ7WƝbX6}*g١%MA ڶe>$HDUZ=[[ Z5O^DBF\ѯ۽Ўu[Buz}fF\\:Z}&YԿ}yoY@r]6%unuo] 3tW^^"N>F m6& Z5Aa!]vHG+z Nr,!ڇ1Vˡ UY :y/8,s*@xN]iSŹ~\|^ ]ӈ!I] STUd]daKe)Wb`'* _k$j` Nqr.k #ലu!W&m!+{Z|wSHԮ0?Iu@Np ͂#[ƉK Ki/˪e 7(#@IPM!/|Đʞ3wJKa ~|j8Xák0GE  iʓ4ͤCؖ7r-D_[+ey _Z`]^%cfljұHFx+U?x֏ٶՋ k?}ݓ?䮀=8m/K7G:,Lxwƺ%.wc<&nYOW3~O灉Do bZV |UvdtW..4(6 Cg&`NAhׄ["QRT cWT'TvD-x}$9{yCn#,a 4y~Y[`% V%u9Ƒ_#&ey&ifSUONp2֙yEz :(矆*ꎜt.(J:)Zz隍)z)z**g:+œgꭽ+ {,ɖSS,J;-Z{-j-z-;.{.2+.B{/// <0|0 +0 ;0l[|1k1{1!,|2)2-21<35|393=3A =}4I+4M;4QwU[}5Yk5]K A;{_^׼E|b1o?7 ߌUYz@+ 9F`#[²pO٧#c)܀#I!@T{2Fʾ It0][z,,Z =X"T .qh. Ě *H06 c2!0D\A[a$ȔW0:«0y*Qs1K4S#ܿD˕r@$h6 (J12dBưA9 ?C/$- 3Cӣ;3-*ɪZpDyiJ\KQj?4sY@ C1Tl&,","BQJ0.8>ˮ0vbdhbz3ʷ <7 FA0JjL#1C2nëS "Booting", and separate kernel location stuff into a separate dialog (SR - well, did this a different way; moved it to Options ->Startup, instead.) Functionality: * Ability to force a particular MACHINEID for clock-chipped Macs * Find and include monitor resolution changing code which compiles under Symantec and works on non-PowerMacs * "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. * Resizable and printable log window? * Simple Booter extension (like Das-Boot?) which uses the same preferences file? Kernels stored under MacOs: * Add ability to boot from tarred kernels (e.g. netbsd.tar or netbsd.tar.gz) * Full path to kernel (not just current directory) * Proper dialog to select kernel file Booter improvement/to do list ----------------------------- Bugs: * Add workaround for having to reset PRAM on AV Macs * Put up a dialog box and quit if virtual memory is on * Use a preferences