StartMgr Release Notes
First created on: 3/16/92 4:15:39 PM

----------------------------------------------------------•----------------------------------------------------------

3/16/92 4:15:59 PM

File: BootCode.a,18
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1024540

> Release notes for this change:

Load El Kabong printing extensions at boot time along with other types of extensions.

> What was tested:

Changed an extension to have a type of ‘pext’ and watched it get loaded anyway.

----------------------------------------------------------•----------------------------------------------------------
3/26/92 5:58:15 PM

File: LinkedPatchLoader.a,54
Owner: Dean Yu     
Project: MainProj∫LinkedPatches∫

File: Build,255
Owner: Dean Yu     
Project: MainProj∫Make∫

File: SysObj.Make,447
Owner: Dean Yu     
Project: MainProj∫Make∫

File: BootCode.a,22
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

File: BeforePatches.a,27
Owner: Dean Yu     
Project: MainProj∫Patches∫

Radar bug: #1024282

> Release notes for this change:

A Process Manager segment was being loaded high in the system heap, causing fragmentation.  It
was loaded high because the linked patch blocks were in the way at boot time.  We tried to alleviate
this by moving these blocks high in the heap, but that stopped working.  Now we load these segments
in ‘PTCH’ 0, which is run before linked patches, so we don’t have to worry about the strange
memory setup at linked patch time.

> What was tested:

The Process Manager segments in question are loaded low, always.  All the locked blocks are all
in the lower third of the system heap, which is very good for fragmentation.

----------------------------------------------------------•----------------------------------------------------------
4/1/92 9:08:46 PM

File: BootCode.a,24
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1025555

> Release notes for this change:

Add generic A/UX support to Cube-E boot code.

> What was tested:

The A/UX group tested the boot code with the changes under A/UX.  I verified that the changes do
not affect the boot process of the normal system.


----------------------------------------------------------•----------------------------------------------------------
4/2/92 3:48:07 PM

File: Bootcode.a,25
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

File: StartSystem.a,71
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1025555

> Release notes for this change:

Move the first call to MakeSystemHeapGrowable into StartSystem.a because there used to be one
really early in the boot process before all this Gibbly stuff came around.  We can’t put it at the
beginning of BootCode.a because that would cause the Gibbly to get closed because of the call to
_InitApplZone, so we’re doing it before the Gibbly gets opened anyway.


> What was tested:

Booted machine, and the Gibbly kicked in.  With the call to MakeSystemHeapGrowable at the
start of BootCode.a, the Gibbly did not get executed, which is a bad thing.


----------------------------------------------------------•----------------------------------------------------------
4/2/92 9:47:33 PM

File: BootCode.a,26
Owner: Chris Derossi     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1018711

> Release notes for this change:

Script Extensions can legally only reside in the Extensions folder. They should not be executed from the System Folder in the normal case. However, in the case of a bootable floppy, we frequently don’t have enough of an environment to have a full System Folder structure. So, when we fail to find the Extensions folder when looking for Script Extensions, we’ll try the System Folder. But, if the Extensions folder is found, that’s the only place we look for them.

> What was tested:

I walked through this code with Macsbug and fooled it into thinking there was not Extensions folder. The code correctly redirected to the System Folder. Since this bug comes from Bruges, and we don’t have a Hebrew-localized Cube-E boot disk, I was unable to check the specific case in the bug. But, the worst thing that could happen is the bug isn’t fixed, and we have to live with the Bruges situation where Install 1 disks are not allowed to get unblessed.

----------------------------------------------------------•----------------------------------------------------------
4/13/92 7:01:31 PM

File: BootCode.a,27
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1027105

> Release notes for this change:

Don’t disable script extensions if the primary script is non-Roman, as a script extension is
required for such systems.  Also, stripped out the skanky AppleTalk stuff that loaded a dummy
LAP routine since AppleTalk 57.0.4 does that.

> What was tested:

Added Hebrew as a secondary script and rebooted.  The script extension is loaded if the shift key
is not held down, and not loaded if it is held down.  Made Hebrew the primary script.  The extension
loads whether or not the shift key is held down.

----------------------------------------------------------•----------------------------------------------------------
4/15/92 11:53:39 PM

File: StartSystem.a,73
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1027491

> Release notes for this change:

Clear ioVRefNum before calling HGetFileInfo to find a Gibbly which can boot.  This field used to
be cleared by something that was moved into BootCode.a.  If we’re lucky, this field will happen
to have 0, and Gibblies will work.  If we’re not so lucky, this field will have garbage and Gibblies
won’t kick in.  If we’re totally out of luck, we’re running Cube-E on a new machine, and we wind
up with a sad Mac.

> What was tested:

DB-Lite is able to boot with this change.  My sample Gibbly that fixes a stupid MacTCP bug on my
Zydeco works.  (I wouldn’t be able to finish the boot process without this fix.)

----------------------------------------------------------•----------------------------------------------------------
4/20/92 2:28:55 PM

File: Boot3.a,32
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1024149

> Release notes for this change:

DAL should not be disabled when AppleTalk is turned off, since it could be used through
the serial
port.  Take out the code which prevents DAL from loading if AppleTalk is off.

> What was tested:

Turned AppleTalk off from the Chooser, and rebooted.  After the machine has started up,
DAL was
still loaded, and taking up 20K for no good reason.
----------------------------------------------------------•----------------------------------------------------------
4/29/92 5:37:48 PM

File: Boot3.a,34
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1027105

> Release notes for this change:

Took out code that prevented script extensions from being disabled at boot time when
Roman was not the primary script.

The reasoning behind the code in the first place was that for other countries like Japan,
for example, the script extensions are not optional software, and should not be disabled
when the user holds down the shift key, since this would result in some strange stuff
going on on the screen.  A change was made to the boot code to keep the script extensions
loading if Roman was not the primary script.

This was fine and dandy.  The script extensions were always loading.  The problem was
that the secondary inits, like Akiko and InputBackSupport were still being disabled.
This obviously presents a problem to people who are trying to use the system.  This would
be further exacerbated in the future if third parties right input methods.  There is no
elegant way to solve the general problem, and the solve the specific problem of Akiko and
IBS isn’t the right thing, so I took out the original change.  This puts us back to the
way the world was under 7.0, GomTalk, and Bruges.

> What was tested:

Made sure that script systems are disabled when the shift key is held down, when Japanese
was both a primary and secondary script.
----------------------------------------------------------•----------------------------------------------------------
5/28/92 6:22:39 PM

File: BootEqu.a,9
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: Boot2.a,75
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

File: Boot3.a,35
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1030972

> Release notes for this change:

If the ‘boot’ 2 resource in the System file cannot find a Gibbly that knows how to boot
the machine, it used to put up a system error alert saying that the disk is too old to be
used on this Macintosh.  When some code was moved from ‘boot’ 2 into ‘boot’ 3, the code
that set up the DSAT error table was moved too.  This prevents the error from being
displayed by the SysError call in ‘boot’ 2, so it just sad Macs.  The reason the error
table initialization was moved into ‘boot’ 3 was so that the standard one could be
overridden by a Gibbly.

Changed ‘boot’ 2 so that it sets a bit in low memory instead of calling SysError if it
can’t find a Gibbly to boot with.  It then calls the System’s ‘boot’ 3 to display the
message.  Changed ‘boot’ 3 to look at this bit right after the DSAT error table is set
up.  If it sees that the bit is set, it will display the appropriate error, otherwise,
the boot process continues.

> What was tested:

Edited the changed System file’s ‘gbly’ resource so that it can’t boot on a Mac IIci.
Without another Gibbly that can boot the ci, the error that says that the disk is too old
for this Macintosh is displayed.  When a Gibbly that can boot the machine is placed in
the System folder, the Gibbly gets the boot process, and the machine can boot.
----------------------------------------------------------•----------------------------------------------------------
6/15/92 7:00:41 PM

File: Boot3.a,36     
Owner: Chris Derossi     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1032429

> Release notes for this change:

Comm Toolbox tools can have INITs in them. System 7 checked for INITs in Connection
tools, File Transfer tools, and Terminal Emulation tools. Telephone tools were not
checked for INITs, but should be.

I changed the startup code to also check for INITs in Telephone tools. Telephone tools
have a type of ‘vbnd’.

> What was tested:

I changed the type of the Caps Lock extension to ‘vbnd’ and verified that it loaded and
functioned on my PowerBook.
----------------------------------------------------------•----------------------------------------------------------
6/24/92 10:14:36 PM

File: GibblyMacros.a,5
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: Boot2.a,76
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

File: Boot3.a,37
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1033818

> Release notes for this change:

A Gibbly file may get closed before override patches are installed to prevent it from
being closed if the system heap grows, forcing all files above the system resource map to
close down.  This was exhibited on a DB-Lite, trying to boot of an external hard drive by
holding down command-option-shift-delete.

Now, ‘boot’ 2 places the Gibbly’s resource map underneath the system resource map so that
calls to _RsrcZoneInit won’t close it.  The MakeGibblyResident macro has been updated to
look for the Gibbly at the bottom of the resource chain instead of the top.  A call to
_UseResFile in ‘boot’ 3 to force the system to be the current resource map before loading
linked patches was removed now that the System file is at the top of the resource chain
until MakeGibblyResident is called.

> What was tested:

Nick Vicaro moved the Gibbly below the system file in the resource chain in the DB-Lite
Gibbly to prove that this solution would prevent the Gibbly from being closed, and this
was found to be true.  I did further testing on existing machines to ensure that the
changes made would not affect booting on a Gibbly-less machine, or a machine that the
system can boot, but has an external Gibbly anyway, and all these cases work
successfully.
----------------------------------------------------------•----------------------------------------------------------
6/27/92 4:03:30 PM

File: GibblyMacros.a,6
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: Boot2.a,77
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

File: Boot3.a,38
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1033818

> Release notes for this change:

Leave the reference number of the Gibbly in CurMap so that Gibblies will know what their
reference number is.

> What was tested:

Machines that do and don’t require Gibblies to boot continue to do so.

----------------------------------------------------------•----------------------------------------------------------
7/22/92 5:53:54 AM

File: Boot3.a,39     
Owner: Chris Derossi     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1018711

> Release notes for this change:

For our Install 1 disks, we don’t have enough room to build a real System Folder. So
instead, we put everything at the root of the disk and rely on the fact that the boot
code will default all file calls there. This is how the System and Finder are found even
if there isn’t any blessed System Folder.

Unfortunately, the Folder Manager doesn’t have the same built-in defaults, so anyone
relying on finding things with the Folder Manager will fail on one of these magic Install
disks. The code to search for and load Script Extensions used the Folder Manager. This
meant that WSI and WSII would not be loaded if there wasn’t a System Folder.

I tried to fix this in December by having the code try the System Folder if it couldn’t
find an Extensions Folder. Now, if it doesn’t find a System Folder either, it goes ahead
and tries the default directory, which is the root.

> What was tested:

I put a Hebrew System, WorldScript™ I, and the Installer on a floppy. Before my change,
when I booted it, alerts would come up in Chicago instead of the Hebrew font. After my
change, alerts come up with Hebrew characters and are right-justified.
----------------------------------------------------------•----------------------------------------------------------
8/13/92 11:30:56 AM

File: Boot3.a,40     
Owner: Dean Yu     
Project: MainProj∫OS∫StartMgr∫

Radar bug: #1039434

> Release notes for this change:

QuickTime 1.0 had a bug where it wouldn’t register any of it’s components if the
Component Manager was already installed.  To fix this problem, Cube-E has some code in
the boot code that loads QuickTime’s components for it.  The difference is that QuickTime
only loads it’s components when the CPU is a 68020 or better, whereas Cube-E always
loaded the components.  This causes a problem with QuickTime 1.5 and the Photo CD codec,
since it winds up getting called on a 68000, which is bad because it’s using 68020
instructions.  Add a check in the boot code to make sure we’re not on a 68000 CPU before
loading QuickTime components.

> What was tested:

Verified that QuickTime’s components are not loaded on a Mac Plus, but are loaded on a
IIci.

----------------------------------------------------------•----------------------------------------------------------
9/2/93 2:33:59 AM

File: StartBoot.a,52     
Owner: Ian Hendry     
Project: SuperMarioProj∫OS∫StartMgr∫

File: DisplayMgr.c,16     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

Radar bug: #1108969, 1106433

> Release notes for this change:

1108969:  Made sure that notification was available at init time.  This means changing
StartBoot.a to call initialize me in the ROM version and it means having no process
manager dependencies.

I also make sure I am using the system heap when I allocate apple events.  I switched the
code to assume that registered notification procs are responsible for disposing their own
apple events.

1106433:  I fixed my use of CopyPixMap so that I no longer count on QuickDraw to do the
right thing with nil color tables.  I cleaned up the code a little around there so I am
not making bad assumptions about ports.


> What was tested:

1106433:  Built and tested on PDM running NQD extension provided by Shannon to determine
that a) if I make the CopyPixMap call with a nil color table it works (although it
returns an error) and b) that I no longer use a nil color table and so I get no error at
all.

1108969:  Built a small test tool extension that registers itself at init time and dumps
the apple events from display manager.  The tool can also remove notification procs.  I
checked that the procs are correctly installed, that notification happens, that removal
works.  I checked that removing all the procs works, that removing some of the procs
works,  that installing one proc works, that installing multiple procs works.  Everything
seeems cool now.
----------------------------------------------------------•----------------------------------------------------------
