 Asm Release Notes
First created on: 3/25/92 1:06:16 PM

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

3/25/92 1:06:24 PM

File: MFPrivate.a,22
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: MFPrivate.h,24
Owner: Dean Yu     
Project: MainProj∫Internal∫C∫

File: Data.c,21
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Data.h,35
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: OSDispatch.c,12
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

Radar bug: #1024114

> Release notes for this change:

Application Assassin doesn’t work in Cube-E because it relied on hard coded offsets to Process
Manager globals.  Too bad these globals moved in Cube-E.  Since the Assassin is in the Finder in
Cube-E, provide an interface to get to these globals so that the Finder and the Process Manager
aren’t TOO incestuous.  Added PEntryFromProcessSerialNumber, which is selector $4F off of
_OSDispatch.

> What was tested:

There’s an internal routine, PEntryFromPSN which does exactly what we want.  We made a copy
of this routine and gave it a public private interface.  Changed a call to PEntryFromPSN to call the
new routine and watched it go through the dispatcher and return the same result as the original
routine.


----------------------------------------------------------•----------------------------------------------------------
3/30/92 3:27:39 PM

File: GestaltPrivateEqu.a,39
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: MFPrivate.h,25
Owner: Dean Yu     
Project: MainProj∫Internal∫C∫

File: Data.c,22
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Data.h,36
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: ProcessMgrMisc.a,17
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Startup.c,21
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

File: Switch.c,18
Owner: Dean Yu     
Project: MainProj∫ProcessMgr∫

Radar bug: #1025416

> Release notes for this change:

On each Process Manager context switch, call Skia to tell it to switch it’s globals as well.


> What was tested:

Booted new system with and without Skia.  Without Skia installed, the new code is not executed.
With Skia installed, the Skia trap is called by switch_task.


----------------------------------------------------------•----------------------------------------------------------
3/30/92 5:53:59 PM

File: ResourceMgrPriv.a,13
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: ResourceMgrExtensions.a,42
Owner: Dean Yu     
Project: MainProj∫Toolbox∫ResourceMgr∫

File: ResourceMgrPatches.a,22
Owner: Dean Yu     
Project: MainProj∫Toolbox∫ResourceMgr∫

File: ResourceOverridePatches.a,33
Owner: Dean Yu     
Project: MainProj∫Toolbox∫ResourceMgr∫

Radar bug: #1025140

> Release notes for this change:

Resource Override Code Review cleanup.  Shave some bytes, fix some bugs, remove some patches.

> What was tested:

Made sure that GetIndResource still returns nil if the resource is not found, now that the patch that
does that is gone.  Made sure the override bits were still being set properly now that several bset
instructions have been merged into one or instruction.  Made sure mask values did not change now
that labels are being used instead of hard coded numbers.  Made sure stack frames did not change
because of the new stack frame macros.


----------------------------------------------------------•----------------------------------------------------------
3/31/92 23:42:18

File: DialogsPriv.a,8
Owner: Kevin MacDonell     
Project: MainProj∫Internal∫Asm∫

File: DialogsPriv.h,6
Owner: Kevin MacDonell     
Project: MainProj∫Internal∫C∫

File: DialogsPriv.p,6
Owner: Kevin MacDonell     
Project: MainProj∫Internal∫Pascal∫

File: DialogDispatch.a,16
Owner: Kevin MacDonell     
Project: MainProj∫Toolbox∫DialogMgr∫

File: DialogMgrPatches.c,6
Owner: Kevin MacDonell     
Project: MainProj∫Toolbox∫DialogMgr∫

Radar bug: #1021993

> Release notes for this change:

Export interfaces to new Dialog Manager citation substitution routines (ParamText fixes).  These are generally useful and C3P0 will require them for 2-byte systems (in the future).

> What was tested:

MPW Tool DialogMgrTestCitations tests the functionality of these calls.


----------------------------------------------------------•----------------------------------------------------------
4/3/92 5:38:28 PM

File: ScriptPriv.a,61
Owner: Susan M. Bartalo     
Project: MainProj∫Internal∫Asm∫

Radar bug: #1019369

> Release notes for this change:

Changed the spelling of the GetEnvirons/SetEnvirons verb, smKeyDisabState, to smKeyDisableState.  Also, added a new bit, HaveOldJapanIMbit, for a private keyboard menu field.  It’s used to determine the number and types of input methods available.

> What was tested:

The verb smKeyDisableState are used to save and restore the state of the keyboard menu around calls to modify the state.  For example, the Finder needs to disable all keyboards not in the system or Roman scripts, so it needs to save the state of the menu before making the call to disable these menuitems.  The private bit is tested by running Cube-E with an old-style Japanese input method and seeing the input method in the keyboard menu.

----------------------------------------------------------•----------------------------------------------------------
4/4/92 7:32:24 PM

File: FileMgrPrivate.a,21
Owner: Fred Monroe     
Project: MainProj∫Internal∫Asm∫

File: FSpDispatch.a,8
Owner: Fred Monroe     
Project: MainProj∫OS∫HFS∫Extensions∫

File: FSSpecCalls.c,11
Owner: Fred Monroe     
Project: MainProj∫OS∫HFS∫Extensions∫

Radar bug: #1021881

> Release notes for this change:

Added two calls to HighLevelDispatch. They are SuspendProcessManagerFileTracking and ResumeProcessMgrFileTracking. Currently these calls simply call begin and endsystemmode respectively. Eventually we will release these calls to developers.

> What was tested:

Wrote an init that calls these high-level dispatch calls instead of BeginSystemMode and EndSystemmode  from the OSDispatch trap. 

----------------------------------------------------------•----------------------------------------------------------
4/5/92 6:23:32 PM

File: ScriptPriv.a,62
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

Radar bug: #1025317

> Release notes for this change:

Expand fixed space at beginning of Script Mgr application-specific globals, for use by one-byte extension.

> What was tested:

Full build, then pasted Script Mgr ptch resources and Intl Utils (PACK 6) into CubeE 36++, tested sorting, walked through code with MacsBug.

----------------------------------------------------------•----------------------------------------------------------
4/8/92 12:02:54 PM

File: ScriptEqu.a,50
Owner: Peter Edberg     
Project: MainProj∫Interfaces∫AIncludes∫

File: Script.h,60
Owner: Peter Edberg     
Project: MainProj∫Interfaces∫CIncludes∫

File: Script.p,58
Owner: Peter Edberg     
Project: MainProj∫Interfaces∫PInterfaces∫

File: ScriptPriv.a,63
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptPriv.h,23
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

Radar bug: #1026516

> Release notes for this change:

Many of the script manager routines that depend on a grafport (to get a font => script code that determines their operation) have an alternate form in which a script code can be passed as a parameter; this is useful when a grafport may not be available. Until now, interfaces for these alternate forms are all private (although they are already being tested for Cube-E). They are now being made public, as various people need them, including N&C and El Kabong applications. The implementation of these routines is the same standard forms; the code that handles the script code parameter is in the Script Manager dispatcher, and it strips this parameter, so by the time we reach the routines themselves, the stack setup is the same as the normal way of calling these routines.

These interfaces are: SCCharByte, SCCharType, SCFindWord, SCTransliterate, SCParseTable, SCLowerText, SCUpperText, SCStripText, SCStripUpperText.


> What was tested:

Full System file build (-e): there is no change in functionality, just moving interfaces. Pasted resulting Script Mgr patches into Cube-E 36++ and ran the system.

----------------------------------------------------------•----------------------------------------------------------
4/10/92 8:33:07 PM

File: ScriptPriv.a,64
Owner: Susan M. Bartalo     
Project: MainProj∫Internal∫Asm∫

File: ScriptMgrExtTail.a,53
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrKeyGetSet.a,35
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrSysMenuPatch.a,25
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1026551

> Release notes for this change:

Added a patch to DrawMenuBar to disable the keyboard appropriately for the state of the current application’s scriptDisableKybds flag.  Also modified KeyScript for disabling/enabling the keyboard menu items to now use the byte information in the application-specific
globals instead of the script manager record. 

#1026911:  Fixed the bug that assumed item #1 was always the About Keyboards… item and hence displayed the dialog. Not a good thing if it was actually a KCHR or input method.  Now if an iconSuiteH does not exist for item #1 then I know it’s About Keyboards.  Also, for KeyScript calls to enable/disable the About Keyboards menu item, must be sure item #1 is this menu item.


> What was tested:

Tested the patch to DrawMenuBar with the new Finder, the new Map cdev (both for CubeE 40) and an application that’s unaware of the application-specific globals.  The default state of the scriptDisableKybds flag in the globals is “enable”, so any application that doesn’t explicitly disable the keyboard menu will have all enabled scripts’ keyboard layouts available for use.  This prevents us from breaking multi-script applications that do the right thing already and it means that other applications are not any worse off than before: when they enter text from a keyboard not in the System or Roman script, they will just see garbage characters.

The Finder now only makes a KeyScript call to disable the keyboard menu items not in the System script or Roman at init time and then brackets control panel activate/deactivate events with KeyScript enable/disable keyboard menu item calls.  Also, Map cdev makes a KeyScript disable call.  So, I tried switching between the Finder, the Map cdev, and the application (in different order permutations) and the keyboard menu is now correctly updated to  represent the desired state for each process.

----------------------------------------------------------•----------------------------------------------------------
4/14/92 11:04:09 AM

File: SoundPriv.a,23
Owner: Kip Olson     
Project: MainProj∫Internal∫Asm∫

File: SoundInputPriv.h,11
Owner: Kip Olson     
Project: MainProj∫Internal∫C∫

File: SinDrvr.a,52
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

File: SoundMgrPatch.a,26
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

Radar bug: #1018061

> Release notes for this change:

The built-in sound input driver was allocating 12K of system heap at boot time and never
releasing it. It now only allocates this memory when the driver is opened for recording
and releases this memory when the driver is closed.

This means the built-in driver will now return memFullErr (-108) if it cannot allocate
space in the system heap during the following sound input manager routines:

SPBRecord()
SPBSetDeviceInfo() with the ‘lmet’ and ‘cont’ selectors set to 1

All other routines should work as before.

> What was tested:

Tested on Zydeco and Mac IIsi using the Sound CDEV, which puts up a nice dialog telling
you about error -108 when it occurs.
----------------------------------------------------------•----------------------------------------------------------
4/17/92 5:03:50 PM

File: SysPrivateEqu.a,56
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ExpandMemPriv.h,34
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

File: InternationalPACK.a,40
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1027387

> Release notes for this change:

Routines in the International Utilities Package - PACK 6 - sometimes call traps that move
memory. Before they do this, they are supposed to call the internal LockIt routine; if
they PACK is not already locked, this routine locks it and sets the Boolean
emItlNeedUnlock to indicate this. All routines that call LockIt are supposed to exit
through the internal routine UnlockIt, which unlocks the PACK if emItlNeedUnlock is true.

This gets tricky when one PACK 6 routine does a JSR to another. When the second routine
exits to the first routine, it would call UnlockIt, thus prematurely unlocking the
package. Before System 7, there was only one PACK 6 routine - IUGetIntl - which could be
called internally as well as externally. The unlocking problem was handled by having
separate internal and external entry points; the external entry point set a Boolean
emDirectGetIntl, and if this Boolean was not true, IUGetIntl would skip the call to
UnlockIt at exit.

System 7 changes to PACK 6 resulted in:
(1) Multiple levels of internal calls between routines (especially for Type Select), so
that keeping track of the desired lock state got hopelessly muddled, and there were
premature unlocks resulting from internal calls that unlocked PACK 6 before returning to
another PACK 6 routine.
(2) Some sorting routines not calling LockIt before calling a trap that moved memory.
(3) Some sorting routines not calling UnlockIt before exiting in certain situations.

(1) and (2) resulted in crashes. (3) resulted in PACK 6 becoming locked and staying
locked. This was the problem that the 7up fix tried to address. Unfortunately, the 7up
fixed removed the test for emDirectGetIntl at the end of IUGetIntl, which resulted in
PACK 6 becoming prematurely unlocked when GetIntl was called internally from another PACK
6 routine.

The use of emDirectGetIntl was not a good way to keep track of desired lock state anyway.
I have revamped the locking mechanism. emDirectGetIntl is renamed to emDontUnlockYet, and
is a count. This value is incremented before one PACK 6 routine makes a call to another,
and is decremented afterward. UnlockIt only unlocks the PACK if emDontUnlockYet is 0.

I also fixed the missing LockIt and UnlockIt calls.

These changes fix
- crashes resulting from PACK 6 being unlocked when calling a trap that moves memory
- problems with PACK 6 becoming locked.
It is still possible for an app to lock PACK 6; in this case PACK 6 will remain locked
until the app unlocks it. This is necessary behavior, so that apps can call PACK 6 at
interrupt time.


> What was tested:

Full build, then pasted new PACK 6 into Cube-E 41 and rebooted. Checked that PACK 6 no
longer got locked in places where it used to. Stepped through TypeSelect code (most
heavily nested internal calls) to verify proper increment/decrement of
emItlDontUnlockYet, and to verify proper lock/unlock. Wrote a test program to lock PACK
6, call some PACK 6 routines, unlock it, then call some more; verified that it was locked
when it should be and unlocked when it should be. Tried on both IIci and SE.
----------------------------------------------------------•----------------------------------------------------------
4/21/92 6:38:35 PM

File: GestaltPrivateEqu.a,40
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: GestaltPatches.a,32
Owner: Dean Yu     
Project: MainProj∫OS∫Gestalt∫

File: PowerMgrPatches.a,15
Owner: Dean Yu     
Project: MainProj∫OS∫PowerMgr∫

Radar bug: #1026866

> Release notes for this change:

Hardware had an extension that fixes some problems with the PowerBooks.  We’re taking
three of
them for CubeE.  Roll them into PowerMgrPatches.a, and add ‘bugz’ bits to tell the
extension that
these have been fixed in the system.

> What was tested:

These fixes have been verified by the hardware group, both as part of an extension, and
as part of
the base system.


----------------------------------------------------------•----------------------------------------------------------
5/1/92 11:05:18 AM

File: TextServices.a,24
Owner: Kenny S. Tung     
Project: MainProj∫Interfaces∫AIncludes∫

File: TextServices.h,40
Owner: Kenny S. Tung     
Project: MainProj∫Interfaces∫CIncludes∫

File: TSMPrivate.a,20
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,29
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

Radar bug: #1028301

> Release notes for this change:

Since we changed SWM to a driver now, SetTSMDialogState, RestoreTSMDialogState, TSMChangeCursor, and TSMRestoreCursor calls are no longer needed and should be removed from the source code.

> What was tested:

This is a design change.

----------------------------------------------------------•----------------------------------------------------------
5/1/92 8:48:17 PM

File: TSMPrivate.a,21
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,30
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,31
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,36
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1027482

> Release notes for this change:

If the mouse is over a floating window and input method changed cursor on it , then don’t let other application such as Finder to change the cursor again. (Patched _SetCursor). However, IM has to set the cursor as well when it puts out a dialog. Otherwise, Finder will change it to a watch.

> What was tested:

Cursor used to flash between IM’s and Finder’s over a floating window. Now it doesn’t.

----------------------------------------------------------•----------------------------------------------------------
5/10/92 10:43:16 PM

File: ScriptPriv.a,66
Owner: Susan M. Bartalo     
Project: MainProj∫Internal∫Asm∫

File: ScriptMgrExtTail.a,59
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrKeyGetSet.a,40
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrSysMenuPatch.a,27
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1026551

> Release notes for this change:

Added support for new private verb, smKeySynchKbdMenuState: the code to support it, SynchKbdMenuState, disables the keyboard menu appropriately for the state of the current application’s smgrAppDisableKybds flag. It is currently only called from Menu Mgr’s DrawMenuBar routine (the SE/Plus patch version (!) and the ROM version of the code).

This code was added in a8 as a patch to DrawMenuBar but it wasn’t working on an SE/Plus machines.  (This was evident because when an application was the current process the keyboard menu should be completely enabled but instead, only the keyboard layouts or input methods in the System script or Roman script were available.)  The problem was that since SMgr is installed
before link patches and MenuMgr is a linked patch for the SE/Plus, our patch was
getting overwritten when MenuMgr was installed.  So, I added the private KeyScript verb and now Menu Mgr calls KeyScript with this verb.
 
Removed patch to DrawMenuBar from ScriptMgrSysMenuPatch.a and ScriptMgrExtTail.a (the installation code)

> What was tested:

We tested this with an Init of the Menu Mgr and a new ‘ptch’ (27) (Script Manager).  Now when an application is the current process the keyboard menu is completely enabled on an SE and Plus.  Switching between the Finder, control panels, and applications always leaves the keyboard menu in the appropriate state for each of these processes

----------------------------------------------------------•----------------------------------------------------------
5/11/92 11:31:11 AM

File: SysPrivateEqu.a,58
Owner: Jeff Miller     
Project: MainProj∫Internal∫Asm∫

File: ExpandMemPriv.h,36
Owner: Jeff Miller     
Project: MainProj∫Internal∫C∫

File: Startup.c,22
Owner: Jeff Miller     
Project: MainProj∫ProcessMgr∫

Radar bug: #1029437

> Release notes for this change:

Added emProcessMgrExists to ExpandMem to indicate that booting has progressed far enough
that the Process Mgr exists, changed the Process Mgr to set this field to true after
calling MyNewGestalt(), which is where it installs its gestaltOSAttr function.  The
existence of this Gestalt function was previously how system software could tell if the
Process Mgr was up yet.

> What was tested:

Booted on an LC, verified in MacsBug that emProcessMgrExists is false early in the boot
process, and is 1 after the machine is up and running.
----------------------------------------------------------•----------------------------------------------------------
5/14/92 8:59:20 AM

File: ResourceMgrPriv.a,14
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: ResourceMgrPriv.h,10
Owner: Dean Yu     
Project: MainProj∫Internal∫C∫

File: ResourceMgrExtensions.a,48
Owner: Dean Yu     
Project: MainProj∫Toolbox∫ResourceMgr∫

Radar bug: #000000

> Release notes for this change:

OK, that’s not a real bug number.  I don’t know what the real bug number is.  But I know
I’m supposed to fix this.  The bug stated that if you added fonts to the Fonts folder,
then took them out, then added them back in, and kept doing this, eventually, the Finder
would say that you’re not allowed to add any more fonts, even though there are way less
than 128 files in the Fonts folder.  This is because the Finder decided to start closing
the font files as they got pulled out of the Fonts folder.  However, an internal count is
kept of how many font files are opene, and this count is not decremented when the Finder
closes font files, but is incremented every time a file is added to the Fonts folder.  So
the count keeps going up and up and up until it gets to 128.  Since the count is really
internal to the Fonts folder code, rather than having the Finder change this count, we
decided to have the converse call to OpenResFileUnderSystemMap which is used to open font
files.  This change adds the routine CloseResFileUnderSystemMap.  This routine closes
resource files that were opened under the system map, and if it’s a font file in the
Fonts folder, decrements the count of open font files.

> What was tested:

Added some debugging code to OpenResFileUnderSystemMap to close the files as soon as they
have been opened so I could watch CloseResFileUnderSystemMap in action.  The code works,
and the count decrements properly.  At the end of the boot sequence, no fonts were open,
and the count was 0.

----------------------------------------------------------•----------------------------------------------------------
5/14/92 1:38:51 PM

File: ScriptPriv.a,67
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptMgrDispatch.a,16
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrExtensions.a,4
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1029395

> Release notes for this change:

This is a continuation of changes related to bug fix #1029395. In the first version of
those changes, we made the Roman version of FindScriptRun able to handle spaces and
punctuation correctly (e.g. contextually) by using a slightly modified version of
FindWord to process a new state table format. This version was also intended to be usable
by WorldScript 1 and WorldScript 2. However, handling the new-format FindScriptRun in the
Roman system was awkward and would have lead to duplication of code in Roman and the
WorldScripts.

Instead, we have moved the check for new-format FindScriptRun tables into the Script
Manager dispatcher. If such a table exists, the Script Manager will handle it directly
withouth dispatching to the script (this is also consistent with teh way FindWord works).
Otherwise, it will dispatch to the script, which need not worry about handling new-format
tables.

> What was tested:

Patched code into Cube-E a8, tried  with Roman and new Cyrillic tables on IIci (ROM
Script Mgr & 68030) and SE (68000, RAM Script Mgr) using pkeFindScriptTest test program
and walking through with MacsBug.
----------------------------------------------------------•----------------------------------------------------------
5/14/92 4:53:21 PM

File: ScriptPriv.a,68
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptPriv.h,25
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

File: ScriptMgrDispatch.a,17
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrExtTail.a,60
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrInit.a,28
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1027061

> Release notes for this change:

Added private ScriptToRange routine that returns the resource ID range for a script. The
interfaces are in ScriptPriv.a and ScriptPriv.h.

struct ScriptRange {
    short min;
    short max;
};
typedef struct ScriptRange ScriptRange;

pascal ScriptRange ScriptToRange(ScriptCode script);

Given a ScriptCode, this returns a structure containing the min and max ID range. For
Roman, this is 0 and 16383; for Japanese it is 16384 and 16895. This is needed because
several parts of the system need to know this range (e.g. Mover). Currently they
hard-code the formula that defines this range. This works for existing scripts, but for
future scripts we may not be able to continue using the same mapping formula, so these
components need to call a function that returns the range instead.


> What was tested:

Paste update ptch resources into Cube-E a8 on IIci and SE. Call this routine for Roman
and several other scripts. Verify correct results, stack balance, etc.
----------------------------------------------------------•----------------------------------------------------------
5/14/92 6:59:02 PM

File: TSMPrivate.a,22
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,31
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,34
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1025797

> Release notes for this change:

Balloon help does not work when mouse is over a floating window. It is even worse when the help is in Finder because the Balloon window falshes. Now we check if the mouse is over our floating window, we’ll open the resource file from the owner of the window and try to get the Help resource from there. (Each floating window has a Component instance in the refCon which created the window). If resource file is not open, then we use a default string provided in Balloon.r.

> What was tested:

I tested with Akiko, KIM, and my Chinese IM which has Help resource. They all work in Finder and TeachText.

----------------------------------------------------------•----------------------------------------------------------
5/19/92 9:54:20 AM

File: ScriptPriv.a,69
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptPriv.h,26
Owner: Peter Edberg     
Project: MainProj∫Internal∫C∫

File: ScriptMgrDispatch.a,18
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrExtTail.a,61
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrInit.a,29
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1030321

> Release notes for this change:

Need for Cube-E: The new ScriptMgr FindScriptRun code is normally invoked automatically
if new-format tables are present in a script’s itl2 resource. However, the one-byte
extension FindScriptRun also needs to make a direct call to the Script Manager’s new
FindScriptRun code. To do this, we need to add another private selector, and private
interfaces in ScriptPriv.a and ScriptPriv.h for the NFindScriptRun routine, which has the
same interface as FindScriptRun with an additional parameter which is a pointer to a
new-format FindScriptTable.

> What was tested:

Paste updated Script Mgr resources into Cube-E 47 (on IIci and SE). Use FindScriptRun
test program with Cyrillic primary; use MacsBug to alter parameters on stack to simulate
NFindScriptRun call and verify proper operation. Run a few other Script Mgr test programs
to verify that dispatch table is still correct for other routines.
----------------------------------------------------------•----------------------------------------------------------
5/22/92 4:13:22 PM

File: SCSIEqu96.a,2
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: SCSIPriv.a,17
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: SCSIMgr96.a,4
Owner: Dean Yu     
Project: MainProj∫OS∫SCSIMgr∫

File: SCSIMgrHW96.a,5
Owner: Dean Yu     
Project: MainProj∫OS∫SCSIMgr∫

File: SCSIMgrInit96.a,4
Owner: Dean Yu     
Project: MainProj∫OS∫SCSIMgr∫

Radar bug: #1029009

> Release notes for this change:

From James Blair’s release notes:

“The bug involves the incorrect recovery of writeback data.  The order of the writebacks
has been modified to be correct (using the Motorola ‘040 specification).

“Modification to the DREQ bit testing has been implemented.  Instead of using an
immediate btst value (very BAD for compatibility and maintainability! - especially for
the braindead Quadra SCSI address space) a SCSI Mgr global was setup for the bit
location.


> What was tested:

“These mods were tested for hours on the hardware that the bug was reported and other C96
based Macs.”
----------------------------------------------------------•----------------------------------------------------------
5/27/92 10:42:05 PM

File: GestaltEqu.a,54
Owner: Kip Olson     
Project: MainProj∫Interfaces∫AIncludes∫

File: GestaltEqu.h,55
Owner: Kip Olson     
Project: MainProj∫Interfaces∫CIncludes∫

File: GestaltEqu.p,49
Owner: Kip Olson     
Project: MainProj∫Interfaces∫PInterfaces∫

File: UniversalEqu.a,25
Owner: Kip Olson     
Project: MainProj∫Internal∫Asm∫

File: SinHighLevel.c,35
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

File: SoundMgrLowLevel.a,31
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

File: SoundMgrPriv.c,64
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

Radar bug: #1030293

> Release notes for this change:

Some CPU’s cannot play and record at the same time (like the Mac LC, LC II and Vail). A
bit was added to Gestalt called “gestaltPlayAndRecord” which tells you if a machine can
play and record simultaneously. If the bit is not set, the SndRecord() dialog knows that
it should turn off recording before playing the sound just recorded. Also,
SndNewChannel() knows not to allow a channel to be opened while recording on an LC.

> What was tested:

Tested on a Mac LC, IIsi
----------------------------------------------------------•----------------------------------------------------------
5/28/92 6:22:25 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/2/92 7:37:30 PM

File: TSMPrivate.a,23
Owner: John Harvey     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,33
Owner: John Harvey     
Project: MainProj∫Internal∫C∫

Radar bug: 

> Release notes for this change:

Needed to add a global variable to old the real menuID of the input methods menu.

> What was tested:

Built the init used the input method menu.  It worked.
----------------------------------------------------------•----------------------------------------------------------
6/2/92 9:21:29 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/10/92 2:49:32 PM

File: TSMPrivate.a,24
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,35
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,40
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,40
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMInternalUtils.c,26
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMUtility.c,43
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1031142,1030881

> Release notes for this change:

Since we removed the docID param from TSMEvent, UseInputWindow for individual document
has been broken because keydown event is routed to SWM recursively. Fix it with a TSM
global keeping track of which doc is using the input window and added a new private call
-- TSMEventFromSWM. With this new call, TSM can avoid sending events to IM when a TSM
aware application is using the Input Window. Changed many routines in TSM to keep the
state information correct.

> What was tested:

I have conducted a very thorough test with the help from Margarita S. and Shiao-Chen T.
and a test tool from John H. It is working well.
----------------------------------------------------------•----------------------------------------------------------
6/17/92 11:12:40 AM

File: TSMPrivate.a,26
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,39
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,44
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMInternalUtils.c,32
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMUtility.c,47
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1030843

> Release notes for this change:

Balloon help in SWM’s popup menu did get cleared. The problem is because when the mouse
is over a floating window, HMGetBalloon return false. We patched PopUpMenuSelect to set a
flag so that HMGetBalloon can check and return the correct info when the mouse is over a
floating window.

> What was tested:

Tested with SWM and other popup menus, it works ok now.
----------------------------------------------------------•----------------------------------------------------------
6/17/92 12:55:20 PM

File: ScriptPriv.a,71
Owner: Susan M. Bartalo     
Project: MainProj∫Internal∫Asm∫

File: Sys.r,319
Owner: Susan M. Bartalo     
Project: MainProj∫Make∫

File: International.r,25
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrSysMenuPatch.a,30
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1024950

> Release notes for this change:

Updated the About Keyboards dialog to mention input methods (as well as keyboard layouts) when a 2-byte script is installed.  Am now using my routine localGetIndString (exported from ScriptMgrKbdMenu.a) and ParamText to fetch and display the strings for the dialog.  Replaced NameString stack frame variable with kbdMenuString1and kbdMenuString2 in order to more easily localize the About Keyboards dialog strings (and to use localGetIndString).

Some minor changes to International.r include:
Since now using ParamText for About Keyboards dialog items, I added new STR# resources for each of the DITLs. Added a new DITL for the About Keyboards dialog to mention input methods (as well as keyboard layouts) when a 2-byte script is installed.  Updated all About Keyboards dialog items with Instructional Products suggestions.

Added different default input method icons (again), a different default keyboard layout icon that is smaller and more rounded in appearance than the previous icon, and updated the US-System 6 keyboard icons as well.   

> What was tested:

Verified that the correct About Keyboards dialog appeared in different system configurations.  There are three different dialogs: a short one that appears for a Roman-only system configuration, a two paragraph dialog that appears for a multi-script configuration that includes a double-byte script, and a two paragraph dialog that appears for a multi-script configuration that only includes one-byte scripts.

Also verified that the correct icons are displaying per the above changes:
• a different default IM icon is used (this one has an arrow through the keyboard and the arrow is on the diagonal pointing from the lower left corner of the icon to the upper left corner),
• a smaller and more rounded default keyboard layout icon (it still looks like a keyboard), and
• a slightly modified US-System 6 keyboard icon

I will try to create a data base (after this deadline) of our changed icons so the icons can be verified as the current icons.

----------------------------------------------------------•----------------------------------------------------------
6/24/92 10:14:24 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/26/92 12:17:50 PM

File: TSMPrivate.a,28
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,40
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,47
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,48
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMInternalUtils.c,37
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMUtility.c,50
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1033450,1033456,1031316

> Release notes for this change:

This fixed 3 major probelms involving:
1. After openning any dialog window in a TSM aware application which has no open window
will cause Akiko to crash if you click in its pallete. The bug is due to TSM activate the
input method when a new document is created. This deactivates any active Akiko’s instance
(a feature that I never knew). But the crashing part is actually a bug in Akiko.
2. CloseTSMAwareApplication did not call Process Manager with InlineAware(false).
3. Click the menu and move the mouse quickly over a floating window, sometimes the
Balloon is not cleaned up. The HMGetBalloon should return true if it is called inside of
MenuSelect().


> What was tested:

All the cases are tested and they are happenning any more.
----------------------------------------------------------•----------------------------------------------------------
6/26/92 2:35:53 PM

File: ScriptPriv.a,72
Owner: Susan M. Bartalo     
Project: MainProj∫Internal∫Asm∫

File: ScriptMgrKbdMenu.a,40
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: #1033660

> Release notes for this change:

Actually there are two problems here: no Simplified Chinese input methods should have appeared in 
the menu since the component flags value for Simplified Chinese IMs was incorrectly set.  The fact 
that one appeared is a result of some other code that did not take into account that there might be 
TSM-style IMs installed for scripts that are not enabled and/or that the compiled count of IMs (done
on a script basis) may not account for these additional IMs.  Besides fixing the first problem (which 
will alleviate this bug) by changing the value of the equate, I have added code that now counts all of 
the TSM components installed and then, if this number is larger than the compiled total count, it 
uses this grand total instead and other existing code discriminates on what should be in the menu  
based on which scripts are enabled.


> What was tested:

All installed TSM-style input methods now appear in the keyboard menu including Simplified Chinese input methods. Also, if a script is removed but its TSM-style input methods remain in the Extensions folder, the correct input methods appear in the menu for the enabled scripts.

----------------------------------------------------------•----------------------------------------------------------
6/27/92 4:03:16 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/1/92 6:11:06 PM

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

Radar bug: #1031401

> Release notes for this change:

The Macintosh Memory Manager sucks.

Under 7.0, we invented a concept called the system heap slop.  This is a certain amount
of memory that is reserved in the system heap for loading ‘PACK’ resources, like
StandardFile, Balloon Help, etc.  If the Process Manager determines that the system heap
needs to be shrunk down to make room for an application, the Process Manager will leave
this much free space in the system heap.

Under Cube-E, we’re seeing a lot more crashes in low memory situations than we did under
7.0.  There are many reasons for this.
1.  Because memory is better managed in the System heap under Cube-E than 7.0, there are
actually fewer free blocks in the system heap.  Under 7.0, the heap was very fragmented,
which meant that there were a lot of nooks and crannies where resources could be
allocated.  With Cube-E, the system heap is much less fragmented, so there are fewer
nooks where things can get stashed, which in turn means that more memory allocation will
start coming out of this slop space.  This leaves less room for ‘PACK’s, and the Package
Manager has a tendency to generate system errors when a package fails to load.
2.  When this slop was first created under 7.0, the size of the slop was determined by
the space needed for Standard File, List Manager, and Balloon Help.  As more applications
have become System 7 saavy, AppleEvents and Edition Manager are being loaded into this
slop space since they’re ‘PACK’ resources as well.  This leaves less room for the other
‘PACK’ resources, and the Package Manager will crash again when a package cannot be
loaded.

To alleviate this problem somewhat, I’ve increased the slop space from 44K to 64K to
provide a little more room for packages to load successfully.  Note that this is really
just a Band Aid™, and a real solution would require a new memory management model.

> What was tested:

Some particular symptoms of this situation is that applications would crash when you set
their preferred memory sizes to be greater than available memory.  This forces the system
heap to be squeezed down to its minumum, leaving little room for packages and other
system resources.  By providing more slop space, the crashes won’t occur as often.  Note
that we can’t prevented crashes from occuring totally, since this solution just delays
the slop space being filled up, but it still will, and when it does, subsequently trying
to load a package might result in a crash.

----------------------------------------------------------•----------------------------------------------------------
7/2/92 12:43:41 PM

File: SoundPriv.a,24
Owner: Kip Olson     
Project: MainProj∫Internal∫Asm∫

File: SinDrvr.a,53
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

File: SinHighLevel.r,15
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

File: SinRecord.a,36
Owner: Kip Olson     
Project: MainProj∫Toolbox∫SoundMgr∫

Radar bug: #1034389

> Release notes for this change:

Rollback to System 7.0.1 version of sound input driver and install code. This means there
will be an options dialog for the Quadra 900 and 950 instead of three driver icons in the
Sound CDEV. This was done because there were too many bugs in the multi-driver solution,
so it seemed safer and more consitent to do what we had in System 7.0.1.

The only enhancement was to make the driver create it’s 12K internal buffer at driver
open time instead of boot time, which conserves system memory.

> What was tested:

Tested on a Quadra 950.
----------------------------------------------------------•----------------------------------------------------------
7/4/92 5:26:53 PM

File: fontPrivate.a,26
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: BassPatches.a,17
Owner: Dean Yu     
Project: MainProj∫Toolbox∫FontMgr∫

File: PartialFontExtensions.c,7
Owner: Dean Yu     
Project: MainProj∫Toolbox∫FontMgr∫PartialFont∫Source∫

Radar bug: #1034875

> Release notes for this change:

The partial TrueType code in Cube-E assumes that the partial font zone is always present.
This is not the case in the base system.  If this code ever executes, it will dereference
nil, and if EvenBetterBusError is installed, crash.  Normally this code doesn’t execute,
since Roman ‘sfnt’ resources will be able to load into memory successfully, and the
partial font code is not executed.  However, in low memory situations, if the ‘sfnt’
fails to load, the partial font code will kick in and do strange things because there is
no partial font zone.  To get around this, create a small, 5K partial font zone for the
base system for these low memory situations.  This also provides a degredation case.

> What was tested:

Excel would crash with a bus error in the partial font code if the partial font zone does
not exist.  With this change, Excel does not crash.  Since WorldScript II creates a
partial font zone as well, I added a check to see if a partial font zone already exists.
If it does, and the existing zone is smaller than the requested zone size, the existing
zone is destroyed and a new one created.  I verified that the base system’s 5K zone is
replaced by WorldScript II’s 150K zone when that script extension is installed.

----------------------------------------------------------•----------------------------------------------------------
7/5/92 2:03:34 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/9/92 3:43:55 PM

File: fontPrivate.a,27
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

Radar bug: #1035445

> Release notes for this change:

Increased the partial font zone size to 10K so that larger TrueType fonts will display
properly.

> What was tested:

LucidaBright now shows up in it’s own face when viewed from the Finder.  Before, because
it could not be loaded, and the partial font cache was not big enough, Geneva was being
used.

----------------------------------------------------------•----------------------------------------------------------
7/15/92 8:18:10 PM

File: ToolUtils.a,25     
Owner: Susan M. Bartalo     
Project: MainProj∫Interfaces∫AIncludes∫

File: TextEdit.h,22     
Owner: Susan M. Bartalo     
Project: MainProj∫Interfaces∫CIncludes∫

File: TextEdit.p,19     
Owner: Susan M. Bartalo     
Project: MainProj∫Interfaces∫PInterfaces∫

File: TextEditPriv.a,16     
Owner: Susan M. Bartalo     
Project: MainProj∫Internal∫Asm∫

File: TextEdit.a,49     
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫TextEdit∫

File: TextEditPatchIIciROM.a,50     
Owner: Susan M. Bartalo     
Project: MainProj∫Toolbox∫TextEdit∫

Radar bug: ##

> Release notes for this change:

Move DoText selectors from the private interface file TextEditPriv.a to the public
interface files so the whole darn world can use the selectors instead of hard-coded
constants! Renamed teMark to teHighlight and teLoc to teCaret.

> What was tested:

No testing necessary since just changed the names.
----------------------------------------------------------•----------------------------------------------------------
7/16/92 7:10:59 PM

File: TSMPrivate.a,30     
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫Asm∫

File: TSMPrivate.h,43     
Owner: Kenny S. Tung     
Project: MainProj∫Internal∫C∫

File: TSMDispatch.a,51     
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

File: TSMFunctions.c,54     
Owner: Kenny S. Tung     
Project: MainProj∫Toolbox∫TextServicesMgr∫

Radar bug: #1034952

> Release notes for this change:

A cursor can not be set in SetTextServiceCursor TSM component call.
Fixed this problem in SetCursorPatch by checking if we’re inside of the TSMEvent() call.
If we are, then let the SetCursor call thru.

> What was tested:

Press the mouse and Akiko changes the cursor in the inline hole.
----------------------------------------------------------•----------------------------------------------------------
9/2/92 12:05:05 PM

File: fontPrivate.a,29     
Owner: Dean Yu     
Project: MainProj∫Internal∫Asm∫

File: FontMgr.a,70     
Owner: Dean Yu     
Project: MainProj∫Toolbox∫FontMgr∫

File: ResourceMgrExtensions.a,61     
Owner: Dean Yu     
Project: MainProj∫Toolbox∫ResourceMgr∫

Radar bug: 

> Release notes for this change:

Converting some equates into record structures.

> What was tested:

No object change.

----------------------------------------------------------•----------------------------------------------------------
11/17/92 8:57:46 PM

File: IntlResourcesPriv.a,1     
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ScriptPriv.a,74     
Owner: Peter Edberg     
Project: MainProj∫Internal∫Asm∫

File: ROMObj.Make,126     
Owner: Peter Edberg     
Project: MainProj∫Make∫

File: SysObj.Make,488     
Owner: Peter Edberg     
Project: MainProj∫Make∫

File: itl4Roman.a,12     
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: RomanITL2.a,15     
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

File: ScriptMgrUtilText.a,11     
Owner: Peter Edberg     
Project: MainProj∫Toolbox∫ScriptMgr∫

Radar bug: 

> Release notes for this change:

Create a new file IntlResourcespriv.a, which can be given to localizers and script
developers (along with RomanItl2.a and itl4Roman.a) to build itl2 and itl4 resources.
Move the macros for building itl2 from the itl2 source into IntlResourcespriv.a to avoid
unnecessary duplication in each itl2. Move the equates used for IntlTokenize code in
ScriptMgrUtilText.a and itl4Roman.a from ScriptPriv.a into IntlResourcespriv.a; these are
separated out from ScriptPriv.a because the other stuff in ScriptPriv.a should not be
distributed and is not neeeded in order to build itl4 resources.

> What was tested:

Build, then do resequal on before and after System files.
----------------------------------------------------------•----------------------------------------------------------
2/4/93 8:12 AM

File: AMICEqu.a,1     
Owner: Dave Calvert     
Project: SuperMarioProj∫Internal∫Asm∫

Radar bug: 

> Release notes for this change:

Checked in AMIC equates file to help with PDM ROM build D4 (2/4/93).  File is from development
debugging sources and should not be expected to work.  This file will ultimately be part
of the PDM MACE Ethernet driver code.

> What was tested:

Completely untested and will likely crash.
----------------------------------------------------------•----------------------------------------------------------
3/25/93 8:40:09 PM

File: Displays.a,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: ProcessesPriv.h,1     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

Radar bug: 

> Release notes for this change:

First checkin of Display Manager Sources

> What was tested:

Nobody depends on them yet.  They do not affect the supermario build.  One thing to watch
for is ProcessesPriv.h is the new name for MFPrivate.h on Reality and sometime,
MFPrivate.h should be purged from SuperMario.
----------------------------------------------------------•----------------------------------------------------------
3/31/93 5:00:40 PM

File: DisplaysPriv.a,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: MenuMgrPriv.a,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: MenuMgrPriv.h,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: MainCode.Make,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Make∫

File: RISC.make,23     
Owner: Ian Hendry     
Project: SuperMarioProj∫Make∫

File: Universal.make,11     
Owner: Ian Hendry     
Project: SuperMarioProj∫Make∫

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

File: Toolbox.make,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫

File: WindowMgr.a,27     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫WindowMgr∫

Radar bug: 

> Release notes for this change:

Check in Display Manager to build.

Check in fix to have standardequates build follow the FastROMTraps automatically (Script
CreateStdEquAOptions parses the feature set to determine how to set the Standard equates
flags).  I added this to only to Universal.Make and RISC.make.

Display Manager is included in RISC builds and available on Universal Builds.

> What was tested:

Did full builds of Universal and PDM.
----------------------------------------------------------•----------------------------------------------------------
5/28/93 4:07:12 PM

File: Displays.a,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

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

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

Radar bug: #1081805,1086363

> Release notes for this change:

Pre-alpha freeze check-in.  This code fixes the 1081805,1086363 and a number of
unreported bugs that I found while preparing for alpha.  I fixed some patches that run on
68K machines.  Several selectors have moved to the private range and so I reordered the
public ones.  In order to not confuse older version of finder and monitors, the gestalt
selector for display manager has changed from ‘udsk’ to ‘dply’.  That way new code
doesn’t see old code and old code doesn’t see new.  There was a persistent multiple
monitor bug that would (if you worked at it) crash your system.  It depended on moving
displays and then waving the cursor as the display manager rearranged the displays.  I
think I have this fixed, but I will keep an eye on it.

I also changed the interfaces a little to simplify walking ALL display (including
inactive ones).

> What was tested:

I have been building and testing with this code for some time.  I spend yesterday and
today really hammering on it on both 68K and PDM machines.  It seems to be holding up
well, but I will be continuing my testing and bug fixes.
----------------------------------------------------------•----------------------------------------------------------
6/25/93 9:42:13 AM

File: SonoraDriver.a,15     
Owner: Ian Hendry     
Project: SuperMarioProj∫DeclData∫DeclVideo∫Sonora∫

File: Displays.a,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

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

Radar bug: 

> Release notes for this change:

Changed DMAddDisplay to add device to devicelist and DMRemoveDisplay to remove device
from devicelist.  Added some new calls to support DMAddDisplay, DMRemoveDisplay and smart
monitors (see header and forthcoming ERS).

Changed the display manager to clear get connection and get timing calls (rather than the
driver).  This was Mike Puckett’s suggestion.  It makes it so if you add fields, old
drivers don’t set only some of the fields.

> What was tested:

Build and tested ROM on PDM.  Mode switching still worked.  I to work with Max to be sure
that DMAddDisplay and DMRemoveDisplay work.
----------------------------------------------------------•----------------------------------------------------------
7/2/93 4:50:22 PM

File: GestaltEqu.h,15     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DepVideoEqu.a,47     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: PPCInit.c,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫OS∫PPC∫

File: InitItt.c,19     
Owner: Ian Hendry     
Project: SuperMarioProj∫OS∫SCSIMgr4pt3∫

File: ThingManager.c,14     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫ComponentMgr∫

File: ThingManagerDisp.a,4     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫ComponentMgr∫

File: ThingManagerDispatcher.a,3     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫ComponentMgr∫

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

Radar bug: 

> Release notes for this change:

Reality update:  Fix gestalt calls to use new prototype (not code change just type
declarations).  Partially updated gestalt header file (except I did not move the error
declarations that should probably be in Errors.h and I did not change the formatting
differences).

> What was tested:

Build and tested.  Found one technically incorrect declaration (but implemented correctly
in assmbler.  Other than that everything seems to work fine.
----------------------------------------------------------•----------------------------------------------------------
8/4/93 4:06:54 PM

File: Displays.a,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: GestaltEqu.a,19     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: GestaltEqu.h,18     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: GestaltEqu.p,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫PInterfaces∫

File: DisplaysPriv.a,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,8     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

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

File: DisplayMgr.make,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

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

Radar bug: #1101633,1098397,1101795,1101636,1102280

> Release notes for this change:

Fixed a number of compatibility bugs (1101633,1098397,1101795,1101636,1102280).

I investigated a number of strategies for compatibility when the main display
changed to a different monitor.  The problem was that there were alway incompatibilities
with some applications and/or performance penalties.

New Implementation:
Exchange the contents the old main device and the new main device so that cached handles
still behave correctly.  There is no performance penalty and (so far) no application
incompatibilities beyond those introduced by the change in size.  I dicussed all these
solutions with Kon Othmer and we both feel this is the base strategy.  The only problem
is that this implementation breaks the connection between a phsyical monitor and its
gDevice.

Rejected implementations:
  (1) changing the lo-mem MainDevice field (apps cache this value),
  (2) introducing a dummy device in the device list that MainDevice points to and
shadowing and disabling the real main device such that caching MainDevice handle works
(some apps had problems and performance suffered because QD always take the multidevice
case, and boot code assumes that all devices in the device list are active screen devices
and therefore ‘scrn’ resources are invalid if it finds an extra device),
  (3) introducing a dummy device BEFORE the device list and pointed MainDevice at it.
Fixed the boot problems and the performance hit, but broke applications that assume
MainDevice is in device list (including MicroSoft Excel).

Added compatibility model.  Conditionally compiled fixes in a separate file with some
guildlines for making sure these fixes can be turned off.  The CloseView compatilbility
fix is the only one in use.

WARNING:
WARNING:  As of this check in, you must use either Pre-Display Manager Monitors CP or
WARNING:  Psychic TV A4 Monitors CP.  The API changed slightly to clean up the interface
WARNING:  and intermediate versions will crash.
WARNING:


> What was tested:

Built and tested extension with Reality sources.  Margarita regressed most of the
existing bugs and things seemed to work.  I updated SuperMario from reality and built and
tested resolution flipping and new version of monitors on PDM.  Everything seems fine.

----------------------------------------------------------•----------------------------------------------------------
8/16/93 9:17:44 PM

File: Displays.a,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,7     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

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

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

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

Radar bug: #1099391

> Release notes for this change:

Synced to latest Reality changes.  Fixed Apple event notification bugs where applications
were getting events they did not know how to handle and were putting up error messages.
Fixed apple event notification to return pre/post information on display states.  Fixed
notification to procptrs for extensions.  Removed some preliminary data structures that
are not used in DM 1.0.  Support QuickDraw GX.

> What was tested:

Built and ran. Checked mode switches.
----------------------------------------------------------•----------------------------------------------------------
9/10/93 11:33:23 AM

File: DisplaysPriv.a,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: CrsrDevPriv.h,2     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplaysPriv.h,12     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

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

File: DisplayMgr.make,8     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

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

Radar bug: #1110418, 1105959

> Release notes for this change:

Fixed cursor crash and dispose monitor bugs.

> What was tested:

Built and heavily tested ROM version using A5e7.  Looking for cursor bug.
----------------------------------------------------------•----------------------------------------------------------
11/5/93 10:01:12 AM

File: Displays.a,9     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫AIncludes∫

File: Displays.h,10     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: Quickdraw.h,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: SysEqu.h,5     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: Video.h,6     
Owner: Ian Hendry     
Project: SuperMarioProj∫Interfaces∫CIncludes∫

File: DisplaysPriv.a,11     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫Asm∫

File: DisplaysPriv.h,14     
Owner: Ian Hendry     
Project: SuperMarioProj∫Internal∫C∫

File: DisplayMgr.a,12     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫DisplayMgr∫

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

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

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

File: MenuMgr.a,20     
Owner: Ian Hendry     
Project: SuperMarioProj∫Toolbox∫MenuMgr∫

Radar bug: 

> Release notes for this change:

Rolled in Excelsior changes for PDM ROM.

> What was tested:

Built and booted a RISC ROM on coldfusion.
----------------------------------------------------------•----------------------------------------------------------
