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