Patches Release Notes
First created on: 3/26/92 5:58:22 PM

----------------------------------------------------------¥----------------------------------------------------------

3/26/92 5:58:32 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/9/92 6:08:35 PM

File: GestaltEqu.a,52
Owner: Jeff Miller     
Project: MainProjºInterfacesºAIncludesº

File: GestaltEqu.h,53
Owner: Jeff Miller     
Project: MainProjºInterfacesºCIncludesº

File: GestaltEqu.p,47
Owner: Jeff Miller     
Project: MainProjºInterfacesºPInterfacesº

File: Sys.r,304
Owner: Jeff Miller     
Project: MainProjºMakeº

File: GestaltFunction.a,42
Owner: Jeff Miller     
Project: MainProjºOSºGestaltº

File: GestaltPatches.a,31
Owner: Jeff Miller     
Project: MainProjºOSºGestaltº

File: PatchIIciROM.a,150
Owner: Jeff Miller     
Project: MainProjºPatchesº

File: ShutDownMgr.a,50
Owner: Jeff Miller     
Project: MainProjºToolboxºShutDownMgrº

File: SoundMgrPatch.a,25
Owner: Jeff Miller     
Project: MainProjºToolboxºSoundMgrº

Radar bug: #1026795

> Release notes for this change:

As we do for the PowerBook 100, we need to change boxFlag on Macintosh LC II machines
from its original value of boxMacLC to boxMacLCII in PatchIIciROM.a.  We also need
to add a new value that can be returned for gestaltMachineType, gestaltMacLCII.  This has
implications
in several areas of the System.  We need to add a new entry in the machine icon table
for Gestalt (the same icon as the LC) and a new string in the machine name STR# in the
System (ÓMacintosh LC IIÓ), both of which show up in the Finder.  We need to make sure
that Gestalt returns the same value for gestaltHasSoftPowerOff and gestaltSerialAttr
as the Mac LC.  In the ShutDown Manager, we need to set the CLUT to 50% gray on a restart
as we do for an LC.  In the Sound Manager, we need to expand the sound primitive vector
table
to include the LC II.


> What was tested:

On an LC II, verified that boxFlag was set correctly, verified that the right icon and
machine string appear in About This MacintoshÉ, verified that the CLUT was set to 50%
gray on restart, verified that sound input worked.  DidnÕt check the returned values for
gestaltHasSoftPowerOff and gestaltSerialAttr, though.
----------------------------------------------------------¥----------------------------------------------------------
4/22/92 10:46:31 AM

File: LowMemoryPrintingPatches.a,3
Owner: Dean Yu     
Project: MainProjºPatchesº

Radar bug: #1012961

> Release notes for this change:

If PrintMonitor is not in the Extensions folder when you try to do background printing,
7-UpÕs alert which asks the user whether he wants to print now or later because not
enough memory is available appears.  Without 7-Up, Finder would report an error saying
that you need to put PrintMonitor back in the extensions folder before you can print
anything.  This was a change that 7-Up introduced.  They decided that if PrintMonitor
wasnÕt there, they would print right away.  Except that the message in the alert was
wrong.  Since this code was rolled into Cube-E, we have the same problem.  Change the
code so that if it couldnÕt find PrintMonitor, it wouldnÕt try to print immediately, and
let the Finder report the old error.

> What was tested:

Took PrintMonitor out of the extensions folder, then tried to background print from
MacWrite II to an LS.  Without the change, the ÒPrint now or later when thereÕs more
memoryÓ dialog appears.  With the change, the print job is spooled to the PrintMonitor
Documents folder, and the Finder brings up the notification that PrintMonitor must be put
back before any printing could be done.

----------------------------------------------------------¥----------------------------------------------------------
5/13/92 4:41:34 PM

File: PatchIIciROM.a,152
Owner: Jeff Miller     
Project: MainProjºPatchesº

Radar bug: #1026795

> Release notes for this change:

Mac LC II computers shipped with both version 1.9f1 and 1.9f2 ROMs.  When determining
whether to set boxFlag to boxMacLCII at boot time, we should just check for the major
version ($19) instead of the whole version (previously, we were checking for $19F2).

> What was tested:

Verified that About This Macintosh still showed Mac LC II on our only LC II test machine,
which has an f2 ROM.  This still needs testing on an f1 ROM as well.

----------------------------------------------------------¥----------------------------------------------------------
5/14/92 2:00:29 AM

File: VideoPatch.a,10
Owner: Chris Derossi     
Project: MainProjºPatchesº

Radar bug: #1029735

> Release notes for this change:

The shipping version of the Macintosh Quadra 950Õs ROM (1.7F2) has a bug in the built-in
video driver which prevents the DirectSetEntries call from working correctly when the
attached display is put into 32 bit-per-pixel mode.  To fix this problem, we just patch
the bad table in place since it resides in the System heap. This is a five-entry table
that needs to have six entries. We just add the sixth entry to the end. This writes over
part of the table used for the SetGrayScreen call, but thatÕs okay since the gray screen
call is generally only used at boot, before this patch gets installed.



> What was tested:

I wasnÕt able to test this too well. I booted it on my Zydeco, but the patch didnÕt fire
because the Slot Manager says thereÕs no driver for the on-board slot. I did prove that
the patch is harmless if it doesnÕt get activated. I watched the code with Macsbug and
the patch exits cleanly.
----------------------------------------------------------¥----------------------------------------------------------
5/28/92 9:53:29 AM

File: MiscPatches.a,59
Owner: hae-sung Kim     
Project: MainProjºPatchesº

Radar bug: #1030902

> Release notes for this change:

Included DictionaryEqu.a file for DictionaryDispatch.

> What was tested:

Compiled and tested with input method.

----------------------------------------------------------¥----------------------------------------------------------
6/2/92 9:21:59 PM

File: GestaltEqu.a,55
Owner: Jeff Miller     
Project: MainProjºInterfacesºAIncludesº

File: GestaltEqu.h,56
Owner: Jeff Miller     
Project: MainProjºInterfacesºCIncludesº

File: GestaltEqu.p,50
Owner: Jeff Miller     
Project: MainProjºInterfacesºPInterfacesº

File: InternalOnlyEqu.a,22
Owner: Jeff Miller     
Project: MainProjºInternalºAsmº

File: Sys.r,317
Owner: Jeff Miller     
Project: MainProjºMakeº

File: GestaltPatches.a,33
Owner: Jeff Miller     
Project: MainProjºOSºGestaltº

File: PatchIIciROM.a,153
Owner: Jeff Miller     
Project: MainProjºPatchesº

File: ShutDownMgr.a,51
Owner: Jeff Miller     
Project: MainProjºToolboxºShutDownMgrº

File: SoundMgrLowLevel.a,32
Owner: Jeff Miller     
Project: MainProjºToolboxºSoundMgrº

File: SoundMgrPatch.a,27
Owner: Jeff Miller     
Project: MainProjºToolboxºSoundMgrº

Radar bug: #1031451

> Release notes for this change:

As we do for the PowerBook 140, we need to change boxFlag on PowerBook 145 machines from
its original value of boxPowerBook170 to boxPowerBook145 in PatchIIciROM.a.  We also need
to add a new value that can be returned for gestaltMachineType, gestaltPowerBook145.
This has implications in several areas of the System.  We need to add a new entry in the
machine icon table for Gestalt (the same icon as the PowerBook 140) and a new string in
the machine name STR# in the System (ÓPowerBook 140.Ó for now, until we announce the
machine (the period at the end will let you tell the difference in the meantime)), both
of which show up in the Finder.  In the ShutDown Manager, we need to close the video
driver at shutdown or restart as we do for the 140 and 170. In the Sound Manager, we need
to expand the sound primitive vector table to include the 145, and fool the Gestalt
attribute table into thinking a 145 is really a 140.

> What was tested:

On a PowerBook 145, verified that boxFlag was set correctly, verified that the right icon
and machine string appear in About This MacintoshÉ, verified that playing a sound and
sound input worked.
----------------------------------------------------------¥----------------------------------------------------------
6/11/92 9:37:39 PM

File: BeforePatches.a,30
Owner: Chris Derossi     
Project: MainProjºPatchesº

Radar bug: #1032330

> Release notes for this change:

When parameter RAM gets reset (Cmd-Option-P-R during boot), the value for SPConfig gets
set to zero. The value from PRAM gets copied into the low-memory global SPConfig when the
machine starts up.

A value of 1 means use AppleTalk. 2 means use asynchronous serial. The value of zero is
undefined. In System 7 and before, the Chooser would assume AppleTalk was on if the value
was zero. The System 7 Tune-Up assumed zero meant AppleTalk was off and this caused a
number of problems. The factories and the hardware teams would like zero to mean
AppleTalk is on.

To reproduce this bug:
Choose Restart
Before the Happy Mac appears, press and hold Command-Option-P-R until the Mac plays the
boot beep a second time
Let go of the keys.
When the Finder is up, select the Chooser from the Apple Menu.

Result:
AppleTalk is off and the Mac needs to be restarted to make AppleTalk active.

Part of the solution is in AppleTalk 57.0.4GM. If SPConfig is zero, they set it to 1,
turning AppleTalk on, mostly. However, the System will have already recorded the fact
that SPConfig was zero and marked a flag in ExpandMem to indicate the AppleTalk is off.
Many parts of the System, including the Chooser, use this flag to decide that AppleTalk
is off.

There are two changes to the System to fix this. First, the code which sets the flag in
ExpandMem should treat zero as AppleTalk active. Second, the code that prevents the
AppleTalk driver from getting opened should be removed. This code is obsolete anyway
since AppleTalk 57.0.4 does the right thing.

> What was tested:

I zapped PRAM during boot and verified that AppleTalk was on by opening the Chooser and
mounting a server. I also checked Sharing Setup.
----------------------------------------------------------¥----------------------------------------------------------
6/17/92 2:54:13 PM

File: PatchIIciROM.a,155     
Owner: Chris Derossi     
Project: MainProjºPatchesº

Radar bug: #1032863

> Release notes for this change:

The boxFlag for the PowerBook 145 needs to be set by software when the machine boots
since the hardware sets it to the boxFlag for a 170 (since the 140, 145, and 170 all
share the same basic hardware and ROM). The original attempt to distinguish between a 140
and a 145 used the current processor speed: if the processor was running at 25MHz, then
it was a 145, otherwise it was a 140.

This doesnÕt work because the 145 has a power-saving mode where it will run at 16MHz.
This caused the code to think it was a 140.

The solution was to check the maximum processor speed instead of the current processor
speed. Now the code successfully identifies a 145 whether itÕs running at 16MHz or 25MHz.

> What was tested:

I booted the 145 and checked boxFlag with Macsbug and About This MacintoshÉ to make sure
it said 145. Then I changed to power-saver (16MHz) mode and rebooted. During boot I
verified that the processor was running at 16MHz. The software still correctly identified
the machine as a 145.
----------------------------------------------------------¥----------------------------------------------------------
6/22/92 7:05:54 PM

File: PatchIIciROM.a,156     
Owner: Chris Derossi     
Project: MainProjºPatchesº

Radar bug: #1033336

> Release notes for this change:

Because of a hardware bug in the 140 ROM, the Power Manager thinks the maximum processor
speed of the 140 is 25MHz. So the code to distingish between the 140 and the 145 thinks
that both are 145s.

The fix is to check the hardware register directly. WeÕre still using maximum processor
speed as the determinant

> What was tested:

The 140 now thinks itÕs a 140. I didnÕt test the 145 yet because thereÕs only one in the
building and the wonderful folks in SQE have it.
----------------------------------------------------------¥----------------------------------------------------------
7/5/92 2:03:56 AM

File: UniversalEqu.a,26     
Owner: Chris Derossi     
Project: MainProjºInternalºAsmº

File: PatchIIciROM.a,157     
Owner: Chris Derossi     
Project: MainProjºPatchesº

Radar bug: #1033139

> Release notes for this change:

The Cuda version of the firmware for the Egret chip doesnÕt need the patches from
PatchIIciROM.a. So I added a check to see if we have Cuda or later firmware and skipped
the patches if so. The change came from the hardware folks since theyÕre working with the
new Egret chips on some of the upcoming CPUs.

I also added the constants for the masks and values for the Egret firmware.

> What was tested:

I couldnÕt do much since I donÕt have a machine with Cuda firmware. However, I did
examine the code with Macsbug to make sure that everything was as expected.
----------------------------------------------------------¥----------------------------------------------------------
7/7/92 12:41:38 AM

File: PatchIIROM.a,93     
Owner: Chris Derossi     
Project: MainProjºPatchesº

Radar bug: #1012754

> Release notes for this change:

ThereÕs an old bug in the patches for Mac II class machines that causes VM and 32-bit
mode to not work. During patch time, we nuke the slot VBL queue and move it to a new
location using updated routines. However, we werenÕt clearing the low-memory global for
the VBL queue.

I added the code to set the low-memory global SlotVBLQ to -1 right after the old queue
header gets disposed. This tell the rest of the software to use the new VBL stuff.

> What was tested:

I wasnÕt able to do any testing on this because IÕm just adding the code at the request
of MHD. IÕm not sure what the specific effect of this change will be, so IÕm relying on
Dallas to do the appropriate tests.
----------------------------------------------------------¥----------------------------------------------------------
