ADC Membership Technical Business Join ADC
Search Advanced Search
Technical Note TN2010
Mac OS 9.1

This Technical Note discusses changes and corrections in the next generation of Mac OS: Mac OS 9.1. This system follows Mac OS 9.0.4 and contains several enhancements and revised features. All developers interested in creating products compatible with Mac OS 9.1 will want to review this document.

For the most part, Mac OS 9.1 is a system update that fixes bugs and improves operational performance and stability (r. 2469436).

CONTENTS

[Jan 18 2001]






Hardware Requirements

Mac OS 9.1 can be installed on any Macintosh that originally shipped with a PowerPC processor that has at least 32 megabytes of physical RAM and a minimum of 40 megabytes of logical RAM (virtual memory is set to 64 by default if there is less than 64 megabytes of physical RAM installed).

Mac OS 9 1 has been tested and qualified by Apple to run on Apple PowerPC-based Mac OS computers. (Mac OS 9 is not tested or qualified by Apple for use on third party Mac OS-compatible computers.)

Back to top



Installation

Mac OS 9.1 may be installed as an upgrade to Mac OS 7.5.5 and later versions of the Mac OS. The installer program requires Mac OS 8.5 or later to run, and it is recommended that users boot from the installation CD before performing an installation.

Back to top




Finder 9.1

The Finder provides a graphical interface for the user along with other Apple event-based services for applications utilizing the file system. The following lists new features and changes present in Finder 9.1.

Overall changes and fixes

  • Get Info windows for applications now allow more free form editing of the Memory partitions. Specifically it is now possible to make changes to either field first without the Finder warning about invalid memory configurations. The Finder will not attempt to apply the changes until the user closes the window (only at this point is a confirmation window presented if the user has entered out of bounds values).

  • A contextual menu command has been added that allows users to view the internal contents of Mac OS 9 package folders. The new Show Package Contents contextual menu command allows users to open a package folder and manipulate its contents as if it were any other folder (r. 2406988).

  • A Window menu listing the current collection of open Finder windows has been added to the Finder's main menu bar. Selecting an item from the Window menu brings the associated window to the front (or, if the item refers to a pop-up window, then the window will pop-up in to view). The following meta key combinations can be used when selecting items from the Window menu:

    • no meta key held down - select & uncollapse

    • Command - close (or close drawer)

    • Command-Shift - close & put away pop-up

    • Command-Option - close others, select & uncollapse this

    • Control - collapse others, select & uncollapse this (Single Window)

    • Control-Option - uncollapse all, select


  • The Finder now supports redirection (by way of the Folder Manager APIs) of the Desktop Folder to volumes other than the startup volume. The Finder now relies entirely on the Folder Manager to determine the location of the Desktop Folder and makes no assumptions about its actual location. (r. 2406346).

  • When copying files, it is no longer possible to overwrite a normal document file with an alias file (r.2433219).

  • Finder 9.1's user interface no longer allows users to turn on file sharing for folders and volumes with names longer than 27 characters (r. 2257202).

  • Editing a file's name inside of the Get Info... window and then locking the file using the check box in the same window no longer reverts the file's name to its last known value (r. 2286023).

  • The Finder's Encrypt menu command is no longer available when an alias file is selected (r. 2397515).

  • Finder 9.1 will not allow users to bless the desktop folder by moving the Finder and system file to that location (r. 2404745).

  • Finder 9.1 does some checking to recognize Mac OS X packages. Namely, if a folder contains the appropriate Mac OS X package information files, then the Finder will identify the folder as a package.

  • A crashing problem that could occur when there was an invisible file in the trash and another file with the same name was dragged to the trash has been corrected (r. 2413764).

  • Some errors that could occur in the Finder when dragging FireWire drives to trash have been corrected (r. 2515977).

  • Pasting custom icon onto a Mac OS X packages is now supported (r. 2538098).

  • The Finder will now properly activate windows that it opened in response to Apple events from other applications while running as a background application when the Finder is switched to the front most application (r. 2417802).

  • A problem where the Finder could hang when opening a narrow window containing many files has been corrected. This could only happen in non-list-view windows, where the icons do not already have locations assigned to them.

  • Finder 9.1 does not allow users to create an alias inside of a drop box. Previous versions of the finder would allow this operation, but they would always fail and leave a partially created alias inside the drop box (r. 2442066).

  • Custom icons now display correctly for Mac OS 9 packages (r. 2468468).

  • Finder List View redrawing heuristics have been improved (r. 2308818).

  • The new Finder no longer crashes when over 200 nested folders are expanded in a list view (r. 2371844).

  • Pop-up window tabs are now resized appropriately after the user changes screen resolutions (r. 2372335).

  • A problem where folder contents do not update dynamically if the folder is opened during a copy operation has been corrected (r. 2474094).

  • Under certain conditions the Command-up-arrow navigation sequence (used to open/select the current selection's parent window) could cause a crash. This problem has been corrected (r. 2515500).

  • Under certain conditions it was possible that using the keyboard sequence command-i (get info) followed by the sequence command-delete (move selection to trash) could corrupt Finder memory and cause a crash. This problem has been corrected (r. 2504598).

  • the following Keyboard shortcuts have been added so that Finder 9.1 supports the same keyboard commands for keyboard shortcuts used in the Mac OS X Desktop (r. 2525977):

    • Command-T - Add selected item to Favorites.

    • Command-Shift-Delete - empty the trash.


  • In some cases, new settings for the memory partition size for an application would not be saved. This has been corrected. (r. 2454019)

  • The Finder now clears the ioFlBkDat and ioDrBkDat fields for new files or folders created as the result of a duplicate command or a copy command.

  • Items found in the temporary items folder at system startup are, once again, moved to the rescued items folder in the trash (r. 2486192).

    Note:
    There is a Tech Info Library article describing this problem located at the address:
    http://til.info.apple.com/techinfo.nsf/artnum/n25134



  • The heuristics used by the Finder when identifying text being dragged to one of the Finder's locations as be appropriate for placement in an Internet location file instead of a clipping file have been updated for better compatibility with international text. These routines now require that text used for creating internet addresses contain an explicit url scheme (such as "mailto:", "http://", etc) before an Internet location file will be created as a result of a drag and drop.

    Note:
    This change only affects text that contains non-ASCII characters. If the text is pure ASCII, then the same algorithm that was used in Mac OS 9 will be used (r. 2478012).



IMPORTANT:
It is no longer possible to launch a control panel in the Finder's partition by holding down the Command and Control keys while double-clicking the control panel's icon (r. 2440800).





AppleScript Changes

  • A problem, that has existed since Mac OS 8.5, where the 'titled' property of a Finder window was compiled into scripts as the resizable property has been corrected (r. 2472105). For example, the script

    tell application "Finder" to get the titled of window 1


    would be compiled as:

    tell application "Finder" to get the resizable of window 1


  • In previous versions of the Finder, asking for a list of creator types of all the active processes would return a list of object references instead of a list of four letter strings. This problem appears in Mac OS 8 through Mac OS 9.0.4 and was not present in Mac OS 7.x (r. 1670530). For example:

    tell application "Finder"
        get creator type of every process
            --> {«class COBA», «class apae», «class 3615», «class Mrr2»,
            «class FMP3», «class ToyS», «class XPR3»}
        beep
    end tell


    This command has been updated so it will always return a list of four character strings as shown here:

    tell application "Finder"
        get creator type of every process
            --> {"XPR3","FMP3", etc.}
        beep
    end tell


  • The "put away" now has an optional "without asking" parameter (r. 1673117) that can be used as shown in the following listing:

    tell application "Finder"
        set theDisk to disk "Scratch"
        put away theDisk without asking
    end tell


    The effect of the optional "without asking" parameter is to inhibit any alerts that may appear during processing of the command such as "This disk will re-appear when you next start the machine."

  • Scripts, such as the one shown below, attempting to retrieve the names of all ejectable disks no longer fail (r. 2244621). In the past, such scripts would abort with an error such as "Finder got an error: Can't get name of every disk of desktop whose ejectable = true."

    tell application "Finder"
       name of every disk of desktop whose ejectable is true
    end tell


  • It is now possible for scripts to determine if they are being called as part of the shutdown sequence or the restart sequence (r. 2275596). To discover the current execution state scripts can use the Finder's "execution state" property as shown below:

    tell application "Finder"
       if execution state is restarting then
          beep 1 -- the machine is being restarted
       else if execution state is starting up then
          beep 2 -- starting up the machine
       else if execution state is running then
          beep 3 -- functioning perfectly
       else if execution state is rebuilding desktop then
          beep 4 -- currently rebuilding the desktop file
       else if execution state is copying then
          beep 5 -- performing a copy operation
       else if execution state is quitting then
          beep 6 -- powering down the machine
       end if
    end tell 


  • Since Mac OS 8.5, scripts using modification and creation date properties associated with files did not work (r. 2279739). This problem appears in Mac OS 8 through Mac OS 9.0.4 and was not present in Mac OS 7.x. This problem has been corrected and it is now possible to use scripts such as the following:

    tell application "Finder"
        set the backup_list to every item of the entire contents of the startup
            disk whose modification date is greater than x
    end tell
    
    tell application "Finder"
        set the backup_list to every item of the startup disk whose -
            creation date is greater than the (current date)
    end tell
    
    tell application "Finder"
        set the backup_list to every item of the startup disk whose -
            modification date is greater than the (current date)
    end tell


Back to top




Apple Data Security 2.1

Apple Data Security provides security features to the Mac OS. Security features include facilities for signing and verification of file signatures, password maintenance, and file cryptography.

  • Apple Data Security now supports 128-bit encryption and decryption.

  • Keychain's handling of http proxy passwords in conjunction with a number of third party applications, and Sherlock, has been improved (r. 2406669, 2391168).

Back to top



Apple File Security

Apple File Security provides cryptographic facilities. Users can use this application to either encrypt a file with a password or decrypt an encrypted file. The Finder's Encrypt menu item is dependent upon the Apple File Security application residing within the Applications folder. Apple File Security does not have the ability to compress and encrypt a folder. This precludes it from encrypting a package.

  • Apple File Security 128-bit encryption.

  • Apple File Security has been updated for better compatibility with some third party virus protection utilities (r. 2399313).

  • A compatibility problem with Multiple Users has been corrected. Here, Apple File Security could mistakenly attempt to encrypt all of the files in a folder containing a file it was asked to encrypt when it does not happen to have read/write permission for the containing folder's parent folder (r. 2442096)

Back to top




Apple Help

Apple Help provides system-wide instructional help services for virtually all aspects of Mac OS.

New Apple Help APIs

  • Several new APIs have been introduced with the version of CarbonLib that ships with Mac OS 9.1. The new APIs are outlined as follows.

    AHSearch

    OSStatus AHSearch(
         CFStringRef bookname,
         CFStringRef query);


    - Tells the Help Viewer to search for the specified query, in the Help book specified by the bookname parameter. If bookname is NULL, search all books. The function is synchronous; it will, if necessary, launch the Help Viewer application, switch to the Help Viewer context, and perform the search.

    AHGotoMainTOC

    OSStatus AHGotoMainTOC(
         AHTOCType toctype);


    - Tells the Help Viewer to go to the main toc specified by toctype. kAHTOCTypeUser would take the user to the Help Center, and kAHTOCTypeDeveloper would take the user to the Developer Help Center*. The function is synchronous; it will, if necessary, launch the Help Viewer application, switch to the Help Viewer context, and go to the specified table of contents page.

    Note:
    NOTE: The Developer Help Center is only supported on Mac OS X. Should a caller attempt to use the kAHTOCTypeDeveloper constant in this API, the Help Viewer will open the Help Center.



    AHGotoPage

    OSStatus AHGotoPage(
         CFStringRef bookname,
         CFStringRef path,
         CFStringRef anchor);


    Tells the Help Viewer to go to the html file specified by a combination of bookname and path. If bookname is NULL, path must be a full "file://" URL. If bookname is not NULL, path should relative to the book specified by bookname. If an anchor is supplied, Help Viewer will scroll to that anchor in the newly opened file. The function is synchronous; it will, if necessary, launch the Help Viewer application, switch to the Help Viewer context, and go to the specified page.

    AHLookupAnchor

    OSStatus AHLookupAnchor(
         CFStringRef bookname,
         CFStringRef anchor);


    - Tells the Help Viewer to open the file that contains the anchor specified, and scroll to that anchor. If bookname is specified, the search for files containing that anchor is limited to that book. If bookname is NULL, all books are searched. Anchors should be unique, but if they're not, Help Viewer will display a list of links to all files that contain the specified anchor. The function is synchronous; it will, if necessary, launch the Help Viewer application, switch to the Help Viewer context, and go to the anchor-containing page, or to the list of results.

    AHRegisterHelpBook

    OSStatus AHRegisterHelpBook(
        const FSRef *appBundleRef);


    - Called by an application each time it launches, this locates a help book that is stored within an application's package, and places an alias to that Help book in the system help location (if not already present), thus enabling the inclusion of that help book in the Help Center the next time Help Viewer is launched.

Help Viewer

Help Viewer is a lightweight HTML rendering application that allows users to browse online help materials.

  • A number of memory management and compatibility problems between help viewer, other system facilities, and some third party printers have been corrected (rr. 2535899, 2386521, 2510449, 2525758). The end result of these changes is improved Help Viewer performance and stability.

  • Urls of the form help:///full/path/to/file.htm are now understood by the Help Viewer (r. 2537852).

  • Problems related to downloading remote content across the Internet, when an alias to the help book is stored in Help book instead of the help book itself, have been corrected (r. 2517221).

  • A problem where aliases stored in the help folder would only work if they had the same name as the help book folder has been corrected (r. 2474792). Aliases are no longer required to have the same name.

Back to top




Carbon Support - CarbonLib 1.1

Carbon is the set of programming interfaces for use in Mac OS applications designed to run in both Mac OS 9.1 and Mac OS X. The following new features are present in the version of CarbonLib that ships with Mac OS 9.1. For more information about CarbonLib, please refer to the Carbon SDK

  • New Carbon Event model APIs.

  • New Carbon Printing model APIs.

  • The DataBrowser APIs.

  • The new Help Viewer APIs.

  • The HTMLRenderingLib APIs.



IMPORTANT:
Although Mac OS 9.1 ships with CarbonLib 1.1, it is recommended that Mac OS 9.1 users upgrade to CarbonLib 1.2 or later for better performance. At the time of this writing, CarbonLib 1.2 is available as part of the CarbonLib SDK available at the developer web site (http://developer.apple.com/sdk).



Back to top




Inside the ROM Image File

The ROM image file is loaded into RAM at system startup and then that area of memory is set to read only. Contents of the ROM image file replace the older hardware based ROM chip set that shipped with Apple Macintosh computers in the past. Updates to the ROM image file are provided with system updates and with new hardware. The following corrections are present in the ROM image file installed with Mac OS 9.1:

  • It was possible for some display colors to be displayed incorrectly after waking up from sleep (r. 2469657). This problem has been corrected.

  • The ID number stored in KMAP resources for Pro keyboards (ANSI, ISO, JIS) was not the correct number. This has been corrected (r. 2504668).

Back to top



USB Support 1.4.4

Mac OS USB is built into the Mac OS ROM file, and enables USB support for those Macintosh systems that have USB built in.

  • Connected devices are now shown as 'non-removable' in the Name Registry (r. 2439684).

  • Better inter-operation with MacsBug has been incorporated into Mac OS USB (rr. 2540060, 2543100, )

Back to top




Inside the System File

The System file contains code and resources for running the computer. This section describes new features, changes, and bug fixes in the System file. The functionality provided by the System file is always present under Mac OS 9.1, even when the shift key is held down at system startup. The system file contains the executable for the libraries listed in this section and resource data used by the system.

  • If more than one application is open while the computer was connected to a server and the user pressed the power button, a dialog notifying the user of the impending server disconnection would appear in the background. This has been corrected (r. 2486759).

  • If a driver was installed by another driver while processing an accRun call, SystemTask would wind up using stale values for the low memory variables UTableBase and UnitNtryCnt. SystemTask has been updated such that if the driver unit table is moved or resized during an accRun call, it will restart processing the accRun at the beginning of the table (r. 2542196). If you need to install a driver from within a driver during an accRun call in a version of Mac OS prior to Mac OS 9.1, you can do so from inside of a Notification Manager task initiated by your driver while processing an accRun call.

  • It was possible for the Process to Process Communication Toolbox to load the Keychain library into some heap other than the system heap and thereby risk having the library close while it was being used. This has been corrected so the keychain library will always be loaded into the system heap by the PPCToolbox (r. 2516363).

  • The InterfaceLib glue for the GetFSInfo, SetFSInfo and InformFSM File System Manager calls was trashing register D3. This has been corrected (r. 2522240).

  • The File Manager, the Device Manager, and the Delay trap now take advantage of the Multiprocessing API Library's advanced power management support to reduce power consumption and increase battery life.

  • Prior to Mac OS 9.1 the limit of the number of outstanding secondary interrupt requests was 40. In Mac OS 9.1 that limit was raised to 256 (r. 2627130).

Back to top



Alias Manager

The Alias Manager is the part of the operating system that communicates with the File Manager to maintain alias records used to store references to file and folder locations. The Alias Manager does not create Finder alias files; the Finder creates these files and stores alias records created by the Alias Manager in them.

  • The following new APIs that take FSRefs instead of FSSpecs have been added to the Alias Manager. These new routines provide the same functionality as the corresponding older Alias Manager calls - the only difference is the use of the new FSRef data type instead of the older FSSpec data type. The new calls are listed below:

    OSErr FSNewAlias(
        const FSRef *fromFile, /* can be NULL */
        const FSRef *target,
        AliasHandle *inAlias)
    
    OSErr FSNewAliasMinimal(
        const FSRef *target,
        AliasHandle *inAlias)
    
    OSErr FSIsAliasFile(
        const FSRef *   fileRef,
        Boolean     *   aliasFileFlag,
        Boolean     *   folderFlag)
    
    OSErr FSResolveAliasWithMountFlags(
        const FSRef *   fromFile, /* can be NULL */
        AliasHandle inAlias,
        FSRef       *   target,
        Boolean     *   wasChanged,
        unsigned long   mountFlags )
    
    OSErr FSResolveAlias (
        const FSRef *   fromFile, /* can be NULL */
        AliasHandle    alias,
        FSRef      *   target,
        Boolean    *   wasChanged)
    
    OSErr FSResolveAliasFileWithMountFlags(
        FSRef       *   theRef,
        Boolean         resolveAliasChains,
        Boolean     *   targetIsFolder,
        Boolean     *   wasAliased,
        unsigned long   mountFlags )
    
     OSErr FSResolveAliasFile(
        FSRef       *   theRef,
        Boolean         resolveAliasChains,
        Boolean     *   targetIsFolder,
        Boolean     *   wasAliased)
    
     OSErr FSFollowFinderAlias(
        FSRef       *   fromFile, /* can be NULL */
        AliasHandle     alias,
        Boolean         logon,
        FSRef       *   target,
        Boolean     *   wasChanged)
    
     OSErr FSUpdateAlias(
        const FSRef   *   fromFile, /* can be NULL */
        const FSRef   *   target,
        AliasHandle alias,
        Boolean *wasChanged)
    


Back to top



Appearance Manager

The Appearance Manager provides facilities for providing a consistent appearance for graphical user interface elements.

  • DrawThemeGenericWell has edge case update bug. If an update is needed on a well, and only the outside pixel or two need updating, an optimization within the Appearance Manager will prevent the outside boundries of the well to get drawn (r. 2435805).

Back to top



ATSUI

Unicode is a character set which encodes the characters of many languages in a flat 16-bit number space. ATSUI extends the QuickDraw API and makes it possible for Mac OS applications to draw Unicode text. ATSUI provides both low-level services for drawing Unicode text as well as much of the high-end typographical control previously provided by QuickDraw GX.

  • Some third party Unicode cmaps were not being used in ATSUI because the script code for the font was not being read correctly. ATSUI now reads the script code correct so these fonts can be used (r. 2541880).

  • The routines ATSULeftCursorPosition and ATSURightwardCursorPosition now use Unicode Utils routines for cluster movement. This corrects some problems found with the ATSULeftCursorPosition and ATSURightwardCursorPosition cluster movement operations for surrogates and for Indic clusters (r. 2503643).

  • The routines ATSUPreviousCursorPosition and ATSUNextCursorPosition now pin returned offset to layout boundaries. Previously, these functions could return offsets beyond the layout boundary. For example, if a layout starts at offset 2 but the text from offset 0 begins with a word that is 5 characters long, then setting the initial offset at 3 and asking ATSUPreviousCursorPosition to return the previous word boundary would return 0, but now it returns 2 (r. 2503648).

  • The routine ATSUPositionToOffset is now able to handle surrogate pairs (r. 2497992).

  • Under some circumstances when only QDStyles were being used, it was possible for ATSUCompareStyles to indicate that two style runs were equal when in fact they were not. This problem has been corrected (r. 2485233).

  • A problem where Color text printed with ATSUI would not appear as expected on the printed page has been corrected (r. 2393116).

  • The Underline character style is no longer applied to the return character (r. 2520184).

Back to top



Drag Manager

The Drag Manager supports Drag-and-Drop operations between windows and applications.

  • Under some circumstances, DrawThemeFocusRect could disable 2D graphics acceleration. This problem has been corrected (r. 2445982).

Back to top



Deferred Task Manager

The Deferred Task Manager is the part of the operating system that can be used to execute routines with all other interrupts enabled at the end of a hardware interrupt cycle. Normally code running inside of a hardware interrupt will call the Deferred Task Manager to schedule operations that would disable other interrupts for too long if they were processed right away inside of the hardware interrupt cycle.

  • It is now possible for a deferred task to call a secondary interrupt handler synchronously from inside of a deferred task using the routine CallSecondaryInterruptHandler2 (r. 2529860).

  • Now, deferred tasks will not run immediately when they are installed from inside of a secondary interrupt handler. Now, when a deferred task is installed during the processing of a secondary interrupt, it will be deferred until the end of the secondary interrupt cycle (r. 2529860).

Back to top



File Manager

The File Manager provides services for storing and retrieving disk-based information. Changes in the File Manager include:

  • The performance of allocating additional space to files has been greatly improved.

  • Writes to a file that do not begin on a 512-byte boundary can be up to 3 times faster than in previous versions of the File Manager. Specifically, when a File Manager write request does not start on a 512-byte boundary, and that write request extents beyond the end of the 512-byte disk block it began in, and the remainder of that write request will not be cached (either because the noCache bit in ioPosMode was set, or because the write request was too large to be cached), the cache buffer containing the first part of the write request is immediately flushed to disk. This helps prevent leaving non-contiguous (on disk) dirty cache buffers in the disk cache which must be flushed one block at a time when the file is flushed or closed.

  • It is now possible to set the size of the disk cache to sizes larger than 8 megabytes (see the Memory control panel section for more information).

  • The File Manager has been revised so that it will no longer process a read command when storing data in the buffer provided would overwrite any low memory globals (r. 2508431).

  • FSGetCatalogInfoBulk now works correctly with PC-formatted Zip disks (r. 2485093).

  • Personal File Sharing is now able to use volumes larger than 4 GB (r. 2283946).

  • A problem that could occur when copying large trees of empty folders from ISO 9660 CDs has been corrected (r. 2372435).

  • FSCreateFileUnicode now works correctly when File Sharing is turned on. Previously, when File Sharing was turned on, files created by this routine would be created with a blank file type and creator even if these values were specified among the parameters to the routine (r. 2397324).

  • A problem where a large number of simultaneous asynchronous read or write calls could begin to return incorrect result codes was discovered. Potential circumstances for this problem only existed in Mac OS 9.0 and Mac OS 9.0.4 (r. 2452853).

  • A problem where file names could be scrambled when being duplicated on systems with 2-byte character encoding has been corrected (r. 2475992). Specifically, a FSSetCatalogInfo call (or its PB equivalents) that didn't try to set the text encoding hint ended up changing the text encoding hint to the current default text encoding. FSSetCatalogInfo leaves the text encoding hint unchanged.

  • A forced unmount (HUnmountVol) will now close any iterators or "large" files (i.e. files opened with OpenFork) before proceeding with the unmount operation and disposing of the memory structures allocated for the volume (r. 2526761).

  • For improved performance, the default allocation block size for volumes over 220GB in size has been set to 8K (r. 2529957).

  • Catalog Node IDs (CNIDs) on Mac OS Extended (HFS Plus) volumes can now be reused. If this has happened, bit 12 (kHFSCatalogNodeIDsReusedBit) of the VCB's vcbAtrb field and the HFSPlusVolumeHeader's attributes field will be set. A disk repair utility that sees this bit set should not complain if it finds that a CNID larger than nextCatalogID already in use.

Back to top



File System Manager

The File System Manager provides a general means by which foreign file systems can be installed, identified, and interfaced to the operating system.

  • The GetFSInfo, SetFSInfo and InformFSM InterfaceLib glue code was trashing register D3 in the 68020 emulator. This problem has been corrected and now this register is preserved (r. 2522240).

Back to top



Folder Manager

The Folder Manager provides facilities for locating "special" folders like the Extensions folder in the System Folder without relying on the names of those folders. This aids application localization.

  • The "Chewable Items" folders on disks other than the startup disk are now emptied at system startup. In previous versions of the system software only the "Chewable Items" folder on the startup disk was emptied at system startup time (r. 2468800).

  • Errors occuring when attempting to create new folders were not being returned by the FindFolder routine. This has been corrected and FindFolder now returns any error codes generated when attempting to create a folder (r. 2489334).

  • The Folder Manager now does some additional cleanup of network trash folders at mount volume and unmount volume time (r. 2485627).

Back to top



Font Manager

The Font Manager provides system-wide services for the retrieval of glyphs for display of textual information.

  • FMGetFontFamilyTextEncoding was only returning the base encoding for Japanese PostScript fonts and it was not returning the font variant. This has been corrected and FMGetFontFamilyTextEncoding now returns the font variant as well (r. 2489182).

Back to top



Icon Services

Icon Services provides fast and efficient facilities for retrieval of appropriate icon information used to represent files, directories, or other commonly used icons (for example, the caution alert icon, the note alert icon, and the help icon).

  • The routine GetIconRefFromFile now returns the correct icon for Mac OS 9 Finder Packages, even when a custom icon has been applied to the package (r. 2481644).

  • A problem where 8-bit icons were being used instead of deep ones when the screen was in 16-bit mode has been corrected. Here, the work around was to switch the screen to 32-bit mode (r. 2395259).

  • A redundant search for a file named Desktop on volumes containing a file named DesktopDB was eliminated (r. 2388430).

Back to top



Memory Manager

The Memory Manager is the part of the operating system responsible for managing memory allocation requests.

  • The MacsBug debugger symbol displayed as the pc location for the memory manager's code has been changed from BowelsOfTheMemoryMgr to the more descriptive name YourHeapIsProbablyCorrupt (r. 2529682)

Back to top



Menu Manager

The Menu Manager is the part of the operating system responsible for both drawing the menu bar, and drawing menus and pop-up menus on the screen while the menu commands are being selected.

  • A problem where IsMenuItemEnabled would always return true has been corrected. This routine now returns the actual enabled state of the item (r. 2406841).

  • A problem where PopUpMenuSelect could return an irrelevant menu item, if a keyboard menu command selection was made while a pop-up menu was being tracked with the mouse, has been corrected (r. 2438609).

  • The menu bar clock's battery indicator has been made more responsive to changing battery conditions (r. 2497581).

Back to top



MultiLingual Text Editing

MultiLingual Text Editing (MLTE) supplies a C language interface for creating and editing Unicode text documents. Although MLTE may appear to be functionally similar to TextEdit in many ways, MLTE provides many features that are not provided in TextEdit.

  • Stability of TXNNewObject's operation under low memory conditions has been improved (rr. 2536146, 2534825).

  • TXNDoFontMenuSelection now returns an appropriate error code when it is asked to perform an operation with a font that is not supported (r. 2488121).

  • The routine TXNSetDataFromFile was ignoring the input offsets when called. It now uses these parameters appropriately (r. 2479847).

  • MLTE now encodes the a font's full name into encoded files instead of the font's UniqueName (r. 2500541).

  • It was possible that justification information would not be used and text would not appear justified as specified in the source file when the text data was read from a RTF format file. This has been corrected (r. 2507443).

  • It is now possible to provide kTXNUnicodeTextData as the search data for the TXNFind routine (r. 2505642).

  • The routine TXNAttachObjectToWindow now preserves the current GrafPort setting when it is called (r. 2516497).

Back to top



Multitasking/Multiprocessing API

The Multitasking/Multiprocessing Library allows applications to perform preemptive multiprocessing operations on PowerPC computers equipped with one or more processors.

  • The routine MPRegisterDebugger was not returning an error when an attempt was made to register a debugger for a particular level when one had already been registered for that level. MPRegisterDebugger will now return an error code when an attempt is made to register a debugger for a level that has already been registered. Because multiple debuggers may now be registered, other debuggers can be installed while Macsbug is installed (r. 2490379).

  • A problem where the routine MPThrowException would return a kInvalidID error when called with the constant kMPTaskStoppedErr has been corrected (r. 2492526).

  • A problem where calls to MPAllocateAligned would crash after MPAllocateAligned was called with the kMPAllocateNoGrowthMask mask in the options parameter has been corrected (r. 2510691).

  • Memory pools allocated by MPAllocateAligned are now properly released when they are no longer needed.

  • MPRemoteCall takes a new option, kMPInterruptRemoteContext, which causes the remote procedure to occur at level-1 interupt time. When the kMPInterruptRemoteContext option is used, the MPRemoteCall procedure will be called almost immediately (the latency is 1.5 microseconds). This new option allows applications to call interrupt safe MPRemoteCall procedures that will execute right away and do not depend on applications calling WaitNextEvent.

    IMPORTANT:
    MPRemoteCall procedures called with the kMPInterruptRemoteContext option must be interrupt safe. Hence, they cannot call any routines that may move or allocate memory. For more information about interrupt safe routines, please see Technical Note TN1104, Interrupt-Safe Routines.



  • MPRemoteCall now calls WakeUpProcess when the kMPOwningProcessRemoteContext option is specified. This substantially reduces calling latency in MPRemoteCalls (from 16 milliseconds to 100 microseconds).

  • MP page faults are now resolved at interrupt time instead of system task time. This improves the page fault latency for MP tasks, and eliminates a number of possible blocking situations that can occur during MP thread execution.

  • The routine MPAllocateAligned could fail even if there was enough memory when the following conditions were met:

    1. The call is being made from a preemptive task created by application 1,

    2. Application 1 has not yet called MaxApplZone to make space for the request,

    3. The allocation request size is larger than the current free space in the heap,

    4. The allocation would fit if the app heap had been grown to full size,

    5. The current application is NOT application 1.

    This problem has been corrected and the MPAllocateAligned call will not longer fail under these conditions when there is sufficient memory available to fulfill the allocation request (r. 2512273).

  • Several bugs in the Multitasking/Multiprocessing API library have been corrected resulting in improved stability in its operation (rr. 2513476, 2520949, 2517072, 2522261, 2524626).

Back to top



Navigation Services

Navigation Services provides new Open and Save dialogs, allowing users to locate and select files and other resources.

  • Under certain conditions with inline input, the new folder name field in the 'create new folder' Navigation Services sub-window would not accept text input. This has been corrected (r. 2404367).

  • A new item "Connect to iDisk..." has been added to the "Shortcuts" button (r. 2463489).

  • An erroneous call to DisposeHandle during the process of adding a favorite to the favorites list in the open dialog has been removed (r. 2470707).

Back to top



PPC Toolbox

The Program-to-Program Communications Toolbox provides process-to-process communications facilities both for processes running on the same machine, and for processes running on different computers connected by either an AppleTalk network or a TCP/IP network.

  • The PPC Toolbox now registers itself with Network Services Location. The name registered with NSL is not the 'raw' domain name or IP address, but rather the machine name assigned in the File Sharing control panel. This means that the same machine name will now be seen when browsing by way of both AppleTalk and TCP/IP (rr. 2382164, 2450626).

  • It is now possible to change the default port number used by the PPCToolbox for PPC over TCP/IP. The port number used by the PPCToolbox is contained in the 'ppc2' resource in the system file. If this resource is present when the PPCToolbox is being initialized, then the ID number it contains will be used as the default listening port for all incoming PPC over TCP/IP connections (r. 2450615).

    Here is the Rez definition for the default 'ppc2' resource in the system file:

    type 'ppc2' {
        unsigned integer; // data structure version (1)
        unsigned integer; // default PPCtoolbox TCP port
    };
    
    
    resource 'ppc2' (-16409) {
        1,    // version of resource
        3031  // default PPCtoolbox TCP port
    };
    


  • It was possible for the location name record describing the remote computer to be set up incorrectly on the listening side of a PPC connection. This has been corrected (r. 2426253).

  • Program linking was being turned off after waking up from sleep. Now, if program linking was turned on before the machine went to sleep, it will be turned on again when the machine wakes up (r. 2435676).

  • Improvements have been made allowing for more stable operation of the PPCToolbox when used in conjunction with the KeyChain (r. 2516363).

Back to top



Process Manager

The Process Manager shares the processor among multiple applications. Mac OS 9.1 includes the following changes in the Process Manager:

  • The Process Manager is now entirely written in native PowerPC code, thus reducing task swapping overhead and improving overall system performance. In particular, performance of calls to WaitNextEvent, switching between applications, and Apple events has been improved. Also, there should be a noticeable performance improvement when running on battery power.

  • WakeUpProcess now properly schedules processes prioritizing them according to their sleep time and their queue of outstanding events.

  • In Mac OS 9, it was possible for the system to crash after an application displaying floating windows unexpectedly quit. This problem has been corrected (r. 2540229).

  • The Process Manager now makes more efficient use of memory and it coordinates its efforts with the Multitasking/Multiprocessing library (r. 2005897).

Back to top



QuickDraw

QuickDraw is the part of the Mac OS used for drawing and displaying graphical information on the screen and other raster devices.

  • CalcCMask is now capable of working with PixMaps with long rowBytes values (r. 2396796).

  • QuickDraw will now correctly draw pictures containing PixMaps with long rowBytes values (r. 2358107).

  • CopyBits is now capable of scaling down PixMaps with long rowBytes values (r. 2407463).

Note:
The Color Manager has been changed so that requests for white and black on 8 bit devices now use the documented requirement that white is the first entry in the pallette and black the last entry. This will cause problems if applications have custom pallettes which do not have white and black in these required positions.



Back to top



QuickDraw Text

QuickDraw Text is the part of the Mac OS used for drawing and displaying textual information on the screen and other raster devices.

  • If only one QDText accelerator was registered, QuickDraw Text would not notice its presence and text acceleration would not take place (r. 2540704). Hardware acceleration of text rendering is now possible, and when hardware acceleration is not available Velocity Engine based acceleration is used (r. 2447291).

Back to top



Resource Manager

The Resource Manager provides a data file format for storing and retrieving information used during application and operating system run time.

  • Some performance enhancements have been introduced that should affect both the performance of the Resource Manager in Mac OS 9.1 and the performance of applications using resource files saved by the Mac OS 9.1 Resource Manager.

    Specifically, the Resource Manager now sorts resource types and ids for files opened read/write, and that the order of resources returned by GetIndResource will likely be different than in previous versions of the Resource Manager. Enumerating across a resource type with GetIndResource while calling AddResource or RemoveResource to add or remove additional resources of that type will likely inconsistent results when compared to the same code using older versions of the Resource Manager.

    And, the number of File Manager Read requests needed to get small resources was reduced from 2 requests to 1 request whenever possible.

  • A new Gestalt bit, gestaltRMSupportsFSCalls, has been added to the value returned by the gestaltResourceMgrBugFixesAttrs selector that indicates the presence of the new FSRef calls described in this section.

  • New APIs that take FSRefs instead of FSSpecs. These new APIs are described in the following:

    OpenResFileFSRef

    short OpenResFileFSRef(
            const FSRef *ref,
            SignedByte permission);

    OpenResFileFSRef performs the same operation as the FSpOpenResFile except it allows the caller to refer to the file using a FSRef instead of FSSpec.



    CreateResFileFSRef

    void CreateResFileFSRef(
            const FSRef *parentRef,
            UniCharCount nameLength,
            const UniChar *name,
            FSCatalogInfoBitmap whichInfo,
            const FSCatalogInfo *catalogInfo, /* can be NULL */
            FSRef *newRef, /* can be NULL */
            FSSpec *newSpec) /* can be NULL */
    
    may be NULL
    

    CreateResFileFSRef creates a new resource file. It is analogous to the corresponding routine, FSpCreateResFile, but this new routine provides a number of additional parameters for better integration with the new HFS+ APIs.

    • parentRef - The directory where the file is to be created

    • nameLength - Number of Unicode characters in the file's name

    • name - A pointer to the Unicode name

    • whichInfo - Which catalog info fields to set

    • catInfo - The values for catalog info fields to set; may be NULL

    • newRef - A pointer to the FSRef for the new resource file; may be NULL

    • newSpec - A pointer to the FSSpec for the new resource file; may be NULL



    ResourceFileAlreadyOpenFSRef

    Boolean ResourceFileAlreadyOpenFSRef(
            const FSRef *resourceFileRef,
            Boolean *inChain,
            SInt16 *refNum);
    

    ResourceFileAlreadyOpenFSRef returns true if the resource file referenced by resourceFileRef is already opened. If the file is opened, the inChain and refNum parameters are set.

    • resourceFileRef - a reference to the file on disk.

    • inChain - set to true if the file is open and its map is in the current resource searching chain.

    • refNum - set to the resource file's reference number. This reference number can be used with other resource manager routines to access the file.



Back to top



Script Manager

The Script Manager provides facilities for display and retrieval of number, date, time, and other information in a language-independent way.

  • Some cases were found where StringToExtended and ExtendedToString were not completely symmetrical. These cases have been fixed (r. 2454794).

  • Calls to InitDateCache could cause a crash when the current script's morningStr and eveningStr are empty. This has been corrected (r. 2439135).

  • The region name "Flemish" has been changed to "Belgian" (r. 2519932).

  • A problem preventing TransliterateText from translating Simplified Chinese double byte numbers to ascii numbers has been corrected (r. 2476554).

  • The routine IntlTokenize was not recognizing the token "<>" as tokenLessGreat. Instead it was parsing it as tokenLess followed by tokenGreat. This has been corrected and now "<>" is recognized as tokenLessGreat (r. 2396920).

Back to top



StdCLib 3.7

StdCLib is a shared library providing functionality for programs compiled using the C language. Mac OS 9.1 includes a new version of the StdCLib in the System file's data fork containing the following corrections:

  • The major change to StdCLib for Mac OS 9.1 is that all StdCLib functions can now be called from preemptive tasks (r. 2464965). This includes I/O operations in <stdio.h> and memory management in <stdlib.h> (for example, malloc, calloc, realloc, and free).

    There are no special initializations which need to be done in order to use this functionality. However, in order to set/get errno in <errno.h> from an MP task, the source code must be built with "-d _POSIX_THREAD_SAFE_FUNCTIONS" and the version 3.7 <errno.h> (r. 2464965). This is because errno needs to be redefined as a macro which obtains the address of the errno value for the task which requests it. That is, errno is per-task data--each MP task has its own errno value.

    The following global state is managed on a per-task basis as well: the seed for the random number generator rand in <stdlib.h>, the state of a scan for strtok in <string.h>, and the static data for ecvt and fcvt in <math.h>, tmpnam in <stdio.h>, and asctime and localtime in <time.h>.

  • The following functions have been added to <stdio.h> (r. 2464965):


        int getchar_unlocked(void);
        int getc_unlocked(FILE* stream);
        int putchar_unlocked(int c);
        int putc_unlocked(int c, FILE* stream);
        void flockfile(FILE* file);
        int ftrylockfile(FILE* file);
        void funlockfile(FILE* file);
    
    so now one can write...
    
        flockfile(stdout);
            for (i = 0 ; i < N ; i++)
                putc_unlocked(buffer[i], stdout);
        funlockfile(stdout);
    
    ...without incurring overhead on each call
    to putc in the loop, and to serialize the output.
    


  • To facilitate MP-safeness, the following macros have been removed from the version 3.7 <stdio.h>: getc, putc, clearerr, feof, ferror, and fileno.

Back to top



Text Services Manager (TSM)

The Text Services Manager provides facilities for applications to communicate with various text processing utilities that provide services such as special text input methods, spell checking, hyphenation, and so on.

  • Support Carbon event model has been built in to the TSM (r. 2484817). There are no new APIs for this functionality, it is handled entirely by the TSM. Clients of the TSM APIs need only call the existing routines as outlined in Inside Macintosh.

  • The SetTSMCursor routine is not available in CarbonLib 1.1. Instead, carbon applications use the new TSMSetInlineInputRegion and TSM handles setting the cursor for you by way of Carbon events (r. 2483971).

Back to top



Thread Manager

The Thread Manager is part of the operating system providing multi-programming services for use within application programs.

  • In Mac OS 9, applications calling DisposeThread on a thread whose stack was allocated in a pre-allocated thread pool, would leak the stacks allocated memory from the pre-allocated thread pool. This was a problem related to the Thread Manager's internal tracking of stack blocks and it has been corrected in Mac OS 9.1 (r. 2410436).

Back to top



Time Manager

The Time Manager provides millisecond and microsecond timing facilities for Mac OS based computers.

  • It was discovered that the Extended Time Manager was not drift free when used to scheduling regular interrupts for periods beyond 24 days. This condition has been corrected, and the Extended Time Manager routines are now drift free when used in this way (r. 2471974).

Back to top



Unicode Text Utilities

The Unicode Text Utilities provide a set of APIs for working with Unicode text. These APIs provide services for sorting and collating Unicode text.

  • Numbers are now sorted before letters as described in the Unicode technical report (r. 2503166, 2503167).

Back to top



vDSP 1.0

vDSP is a collection of vector and scalar digital signal processing functions that take full advantage of the Velocity Engine used in sound, MP3, speech, audio, video and radar.

Back to top



Virtual Memory Manager

The Virtual Memory Manager provides virtual memory services for the Mac OS.

  • Virtual file mapping is now supported. See upcoming technical note for details. Some documentation regarding these routines is currently available in the FileMapping.h header file.

  • Page faults caused by MP tasks are now handled with a MUCH smaller latency. With Mac OS 9.1, page faults caused by MP tasks are handled with the latency of an interrupt. Before Mac OS 9.1, page faults caused by MP tasks were handled when SystemTask was called.

  • Race conditions between MP tasks running on multiple-processor systems and virtual memory paging operations have been removed. Specifically, modified memory pages being paged out are detached from logical memory before being written to disk, and memory pages being paged in now contain valid data before they are mapped to logical memory.

Back to top



Window Manager

The Window Manager provides facilities for drawing and maintaining windows on the screen.

  • It was possible for GetWindowRegion to return an invalid region when the kWindowDragRgn selector was provided. This has been corrected (r. 2314117).

  • A memory leak that could occur in DisposeWindow for windows created with all of their regions behind the menu bar has been corrected (r. 2369718).

  • In the PowerPC version of the Window Manager, CalcVis was not setting the visRgn of an invisible window to the empty region as was done in the classic implementation of the Window Manager. This has been corrected, and the PowerPC version of the Window Manager now sets the visRgn to an empty region for invisible windows (r. 2414578).

  • If an application called HideWindow on a floating window after the application had been swapped and the floating window had been hidden by the Window Manager, the Window Manager would show the floating window the next time the application was swapped to the foreground. This has been corrected such that now the floating window remains hidden when the application is swapped back into the foreground (r. 2414728).

  • The CarbonLib routine MoveStructureWindow was not working correctly for collapsed windows. This has been corrected (r. 2423024).

  • The font used in Utility window titles now uses the routine GetApplicationScript to determine which script to use instead of the smSystemScript constant (r. 2424745).

  • IsWindowInStandardState was not checking the size of the window during calculations. As a result, the ZoomWindowIdeal routine did not work correctly with windows positioned partially off screen. This has been corrected (r. 2478760).

  • StandardAlert was using the smSystemScript constant to select the script for used to set the font in its window. This has been changed such that StandardAlert now uses smCurrentScript to select the script used to find the font used to display text in its window. With this change, foreign language text will be displayed correctly for localized applications in the StandardAlert window when running on a US system with the correct language kit installed (r. 2497250).

Back to top




Control Panels

Control Panels provide user interface facilities for custom configuration of the system.

The Process Manager will choose to launch a control panel file as an application if it contains either a 'CODE' ID = 0 resource (68K app), or it has a 'cfrg' resource with a fragment descriptor marked as an "application"type. Control Panels that meet these criteria will not have their 'cdev' resources called by the system.



IMPORTANT:
It is no longer possible to launch a control panel in the Finder's partition by holding down the Command and Control keys while double-clicking the control panel's icon (r. 2440800).





Apple Menu Options

The Apple Menu Options control panel provides user interface configuration facilities for the appearance and behavior of the Apple Menu.

  • A problem where Apple Menu Options Preferences could be corrupted has been corrected (r. 2528783).

  • Apple Menu Options now tracks documents when they are opened using the HFSPlus APIs, and changes to the Apple Menu's hierarchy are now tracked when the HFSPlus APIs are used.

Back to top



Date and Time

The Date and Time control panel provides a user interface for setting the system clock and configuring the display format for both dates and times.

  • A problem where after waking from sleep of a duration longer than half an hour, Time Synchronizer would hang when trying to synchronize the clock over an Airport connection. This problem has been corrected (r. 2497293).

Back to top



Extensions Manager

The Extensions Manager control panel provides an enhanced user interface with facilities for developers to provide descriptive information for extensions and to group related extensions together in packages.

  • Shareway IP is no longer listed as part of the Mac OS All extension set (r. 2509513).

Back to top



File Exchange 3.0.4

File Exchange provides automatic file name extension to Mac OS file type mapping (for example, mapping the file name extension ".TXT" to the Mac OS file type 'TEXT') along with other services associated with using volumes created for other file systems with Mac OS. The File Exchange control panel allows users to modify settings used by this facility, add new file mappings, mount DOS SCSI disks and drive containers, and set File Translation preferences. New features for this version of File Exchange include:

  • The "PC SCSI Disks: Mount at startup" check box is now unchecked by default. This trims 1-1/2 to 2 seconds off the boot time.

  • The 'please insert the disk' message was being displayed too often when working with multiple ISO 9660 disks. The reasons for this message appearing have been examined and changed so the number of times it will appear has been minimized (r. 2431666).

  • PC DOS formatted volumes containing a folder with the same name as the disk would not copy correctly. Now they do (r. 2475510).

  • A problem where the system would hang when mounting some PC formatted floppy disks with USB drives has been corrected (r. 2418015).

  • A problem where a copy file operation could stall at the end or become very slow when using a DOS formatted USB hard drive has been corrected (rr. 2333267, 2348961).

  • File Exchange did not have a 'sysz' resource for allocating space at system startup, now it does (r. 2373137).

  • File Exchange was not managing multiple USB MS-DOS formatted drives correctly. Now it does (r. 2388092).

  • A problem where File Exchange could hang Mac OS 9 at system startup time if a SCSI bus was installed that supports 256 target devices has been corrected (r. 2418923).

Back to top



File Sharing

The File Sharing control panel allows for end user configuration of file sharing services on the computer.

  • The performance of PBGetCatInfo has been improved when file sharing is turned on (r. 2532597).

  • It was possible for File Sharing's patches on the file manager to report disk full errors (dskFulErr) for file operations on a local volume when the amount of free space on the volume was just over a multiple of 4GB. This problem has been corrected (r. 2536169).

  • The new HFS+ routine FSCreateFileUnicode was not setting the kFSCatInfoFinderInfo when File Sharing was turned on. Now it does (r. 2464870).

  • Some potential stability problems related to File Sharing over IP have been corrected (rr. 2488036, 2507440).

Back to top



File Synchronization 1.2

File Synchronization is a utility control panel that allows users to synchronize collections of files and folders.

  • Problems resulting in out of memory warnings later leading to crashes have been corrected (r. 2245430).

  • A problem where synchronization of folders with custom icons could cause an out of memory error and a crash has been corrected (r. 2245430).

Back to top



General Controls 8.0

The General control panel contains a number of assorted system configuration commands such as the cursor blinking rate, the menu flash count, et al.

  • This version of the General control panel is a PowerPC APPC rewritten for better integration with Mac OS and Multiple Users.

  • The menu flash and insertion point blinking rate were not always being set appropriately when a user logs in. Now they are (r. 2462891).

Back to top



Internet

The Internet control panel provides a graphical user interface for creating and editing Internet Config preferences, including support for switchable preference sets for handling multiple locations or users.

  • Switching the default Web Browser using the pop-up menu now changes both the https and the http helpers. Previously, only the http helper would be changed. Also, switching the default news reader now changes both the nntp helper along with the news helper (r. 2248373).

  • It is now possible to choose helper applications that are delivered as packages (r. 2496506).

Back to top



Memory

The Memory control panel provides a user interface for the configuration of virtual memory, RAM disk storage, and the size of the disk cache.

  • The maximum disk cache size was increased to 32,736K (32M - 32K); the previous limit was 8160K (8M - 32K). This was done to help performance when allocating large files on large HFS Plus volumes (220GB and larger) initialized with the prior default allocation block size of 4KB.

    For large volumes, the size of the volume's allocation bitmap can end up being bigger than the disk cache, causing the File Manager to do a huge amount of I/O when allocating space for a file. Setting the size of the disk cache to a value larger than the size of the bitmap allows the bitmap to remain in the cache, dramatically speeding up allocation requests.

    When a volume uses 4KB allocation blocks (which was the default for large volumes initialized with Mac OS 9.0.4 or earlier), the allocation bitmap will be 32KB per GB of volume size. Volumes over 220GB initialized with Mac OS 9.1 default to an 8KB allocation block size, or 16KB of bitmap per GB of volume size. For example, when using a 200GB volume, the disk cache should be GREATER than 6400K; the next larger size is 6432K. When using a 400GB volume initialized with Mac OS 9.0, you should set the disk cache size to 12832K or larger for best performance.

    Note that the default disk cache size is always less than 8MB (8192K), for maximum compatibility.

  • Added a new Gestalt selector, gestaltDiskCacheSize ('dcsz'), that returns the size of the disk cache size in bytes.

  • Increased the speed that the disk cache size changes when the mouse button is held down for a long time on the up or down arrows.

  • The computations for maximum disk cache size were changed to better take into account physical RAM needed by ROM-in-RAM, built-in video, RAM disk, and the OS. This makes it much harder to set the disk cache and RAM disk so large that you don't have enough physical RAM free to boot. The maximum size is larger when VM will be on than when VM will be off (since the OS uses less physical RAM when VM is on). The logical (VM) RAM size also affects the maximum disk cache size; increasing VM can increase the maximum disk cache size in some configurations.

  • Added a SysError early in boot if the RAM disk setting is too large for the system to boot. This can happen if VM was supposed to be on but was turned off (for example, by booting with the shift key down), after removing RAM, or if a driver uses a large amount of physical RAM. The RAM disk will be turned off and you will be forced to restart.

  • The correct free disk space is now displayed in the Virtual Memory panel. It was previously pinned to the maximum VM size.

Back to top



Remote Access

The Remote Access control panel provides user interface facilities for configuring PPP and ARA connections.

  • Remote Access now supports Challenge-Handshake Authentication Protocol allowing remote connection services to verify a PPP connection periodically both during the connection establishment and after the connection has been established (r. 2297793).

  • PPP now reports its correct MTU size to upper protocol layers for better support of PPPoE type connections (r. 2483604).

  • A problem with the remote access dialog enter key handling code that could result in a crash if the key was typed in rapid succession has been corrected (r. 2536881).

  • A problem where the modem would not dial if the option to connect automatically when starting TCP/IP applications was on and DialAssist was on has been corrected (r. 2541002).

  • A problem where the Modem and Remote Access control panels could wind up with generic icons after an upgrade install has been corrected (r. 2532014).

  • A problem where a powerbook PB101 would crash if the lid was closed while ARA was disconnecting has been corrected (r. 2385200).

  • A problem where in areas with ten-digit dialing, DialAssist would dial the long distance access number before the prefix has been corrected (r. 2419739).

  • A problem preventing long CCL scripts from functioning correctly has been corrected (r. 2458391).

IMPORTANT:
AppleScript's Remote Access Commands are not installed with Mac OS 9.1 as they are not compatible with Remote Access 4.0. As a result, Remote Access Commands will not be available to script writers in Mac OS 9.1.

It is recommended that script writers using any of the commands provided by Remote Access Commands re-write their scripts to use Network Setup Scripting instead. Examples can be found in the Open Transport (Networking) AppleScript Guidebook module, which can be downloaded from http://www.apple.com/applescript on the Web (rr. 2572457, 2530257).



Back to top



Software Update

Software Update provides a way to find and install the latest system software for your computer by way of the Internet.

  • Update now works better when Multiple Users is turned on (r. 2388398).

  • Many of the error messages displayed by Software Update have been revised so they are more descriptive and helpful (r. 2452634).

  • Software Update will now correctly stop the USB Software Locator when the user cancels (r. 2465100).

  • Software Update now works correctly across firewalls (r. 2476559).

  • A call to InitWindows was removed from the Software Update Engine background only application (r. 2513784).

Back to top



Startup Disk

The Startup Disk control panel provides user interface facilities for choosing the disk that will be used to run the computer the next time it starts up.

  • Mac OS 9 comes with an entirely new Startup Disk control panel written entirely in PowerPC code and delivered as an APPC style application. The new control panel features better integration with the rest of the system and improved user interface facilities.

  • With Multiple Users turned on, it is no longer possible for users other than the owner to have access to the Startup Disk control panel (r. 2496511).

Back to top



Web Sharing

Web Sharing provides facilities for users to configure and set up the "Web Sharing" folder on their computer to act as a World Wide Web site. Web Sharing allows users to publish documents on an intranet or the Internet. Documents placed in the Web Sharing folder will be available to other users by using means of any web browsers available on any platform.

  • A problem where web sharing would not run if the TCP/IP control panel was not present (but TCP/IP was enabled and loaded) has been corrected (r. 2501286).

Back to top




System Extensions

System extensions are located in the Extensions folder inside the System Folder. For a system extension to be active, it must be located in the Extensions folder when the system starts up. Extensions are not loaded if the Shift key is held down while the system is starting up.



AppleScript 1.5.5

AppleScript is a component of the operating system that provides a scripting interface for users to automate actions that would normally require use of the menus and keyboard. Even more importantly, it allows users to access functionality of applications which would be difficult or impossible to access by hand.

Mount Volume uses Keychain
  • As of AppleScript 1.5 and later, the 'mount volume' scripting addition will look in the Keychain to see if there is a password for the requested server. Note that keychain passwords are stored according to the connection protocol: a key for a server accessed via AppleTalk is different than a key for accessing the same server through TCP/IP. So if you've created a key for that server connected via TCP/IP, you must use the TCP/IP form of 'mount volume' (using a URL of the form afp://host.domain.com/volume) in order to have the keychain key work correctly. Similarly, if you created the key while connected to the server via AppleTalk, you must use the AppleTalk form of 'mount volume' to use that key.

Rounding 'as taught in school'
  • In AppleScript 1.5 and later, the 'round' scripting addition now can take an additional enumerated parameter: 'as taught in school'. With this parameter, numbers whose fractional parts are less than .5 are rounded towards zero, and fractional parts of .5 and above are rounded away from zero.

Unicode Support
  • In AppleScript 1.3, initial support was added for Unicode data. AppleScript could send, receive, load, and store Unicode strings, and convert between text strings and Unicode strings. It could not display them or perform any operations on them. In AppleScript 1.5 and later, Unicode strings can be displayed in script editors (if the appropriate fonts are installed in the system). CAUTION: In AppleScript 1.5.5, certain operations on Unicode text can cause AppleScript to crash or hang. Apple advises that if your script is handling Unicode text, you should convert the Unicode text to a string before attempting to manipulate the text in any way.

  • Unicode support in AppleScript 1.5 and later has been improved to correctly convert Unicode strings of mixed languages to the appropriate language-specific characters if the necessary Language Kits are installed.

Mac OS X Support
  • In AppleScript 1.4.3, an option was introduced to save scripts as "Mac OS X applets". Due to changes in Mac OS X, these do not actually work on that system. As of AppleScript 1.5 and later, applets saved as "Mac OS X applets" require Mac OS X to run.

  • AppleScript version 1.5 and later can now handle script files in which the script data is stored in the data fork, rather than the resource fork. All scripts that ship with Mac OS X will be stored in the data fork, but the Script Editor by default will continue to save script data in the resource fork for compatibility with previous versions of AppleScript.

  • As of AppleScript 1.5, AppleScript and the Script Editor recognize files that end in '.scpt' as script files, if they are missing other type and creation data. This should make it easier to transfer script files using media or communications methods that do not retain Mac type and creator data.

  • AppleScript 1.5 and later now accept all styles of line endings for the purposes of finding paragraph breaks in strings. The expression 'every paragraph of s' will break paragraphs correctly whether the string is Mac-style (paragraphs end with 0x0D), UNIX style (lines end with 0x0A), or DOS style (lines end with 0x0D0A).

Other Changes
  • The Script Editor in AppleScript 1.4.3 introduced a "proxy icon" in the title bar of script windows: an icon that represents the saved script file on disk. Unfortunately, dragging that icon to a disk folder did not move the script file to that folder; in AppleScript 1.5 and later, it does.

  • In Script Editor 1.4.3 and earlier, command-clicking on the title of a script window that is not front most would bring up a pop-up menu for that script's path. Users expect command-dragging the titles of background windows to drag those windows without bringing them to the front; in Script Editor 1.5 and later, that is indeed what happens.

  • In AppleScript 1.5 and later, the "Where is application <name>?" dialog box now uses Navigation Services instead of Standard File.

  • In AppleScript 1.5 and later, the "info for" scripting addition now returns the size of the file or folder as a real number, not an integer. This accommodates files or folders that are greater than 2 Gigabytes in size.

  • In AppleScript 1.4.3 and earlier, certain arithmetic operations on odd integers were handled differently from the same operations on even integers, making those operations approximately half as fast. Odd integers are now treated the same as even integers, so certain repetitive arithmetic operations on odd integers will be faster in AppleScript 1.5 and later.

  • AppleScript documentation erroneously reports the effective range of AppleScript integers: the true range is 2^29-1 to -2^29 (i.e. 536870911 to -536870912). In AppleScript 1.3 through 1.4.3, integer addition and subtraction handled arithmetic operations at the extremes of this range incorrectly; for example, 536870911 + 1 would return -536870912. In AppleScript 1.5 and later, operations on large-magnitude integers will be promoted to reals, so for example 536870911 + 1 returns 5.36870912E+8.

  • In AppleScript versions 1.4.3 and earlier, asking for the middle item of an empty list (e.g. 'middle item of {}') would cause AppleScript to crash. This has been fixed in 1.5 and later.

  • In AppleScript 1.4.3, running multiple applets simultaneously could occasionally cause AppleScript to crash. This has been fixed in AppleScript 1.5 and later.

  • In AppleScript 1.4.3 and earlier, providing large numbers as the 'seed' parameter to the 'random number' scripting addition would have undesired effects: similar large numbers would consistently produce the same initial random value (though subsequent values would be more randomly distributed). This is especially troublesome because AppleScript itself uses the system clock as a seed value if none is provided, and most system clock values tend to be similar large numbers. In AppleScript 1.5 and later, large seed values produce more evenly distributed initial values.

  • In AppleScript 1.3 through 1.4.3, on rare occasions the 'random number' scripting addition, when given real numbers for its range, would generate a number fractionally larger than the upper bound of the range. In AppleScript 1.5 and later, all random numbers are assured to be no greater than the upper bound.

  • In AppleScript 1.4.3 and earlier, attempting to access item 0 of a list (e.g. 'item 0 of {2, 3, 4}') would produce no error and no result. In AppleScript 1.5 and later, it produces an 'index out of range' error.

  • In AppleScript 1.4.3 and earlier, creating a script with no 'run' handler (explicit or implicit), but having a 'parent' property of a script with an implicit run handler, would work in the Script Editor but crash if the script were saved as an applet. For example:

    script crasher
        property parent : current application
        display dialog "This hasn't crashed"
    end script
    property parent : crasher
    


    Note the script has no statements other than the script and property definition, so there is no 'run' handler; when AppleScript tries to run it, it looks in its 'parent' script ('crasher') and tries to run its run handler. But because there is no explicit run handler in the 'crasher' script, it tries to get the run handler from its parent, and loops infinitely. This has been fixed in AppleScript 1.5 and later.

  • In Folder Actions 1.4.3 and earlier, Folder Actions would create an invisible "Icon\n" file in any folder you control-clicked, whether you attached a Folder Action to it or not. As of Folder Actions 1.5.5, the file is created only if you actually attach a folder action.

  • In Folder Actions 1.5.5 the 'action name' and 'action number' parameters of the 'remove action from' and 'edit action of' events have been changed to 'using action name' and 'using action number' for readability. Older scripts should de-compile to the new form automatically.

Back to top



AppleShare Client 3.8.8

AppleShare Workstation Client provides file sharing services for computers networked with file servers.

  • The AppleShare Workstation Client no longer uses Apple Shared Library Manager (ASLM).

  • A crashing bug that could occur with a custom User Authentication Module that uses volume passwords has been corrected (r. 2546186).

Back to top



ATAPI CD/DVD Driver

The ATAPI CD/DVD Driver provides support for connected ATA CD and DVD devices.

  • Problems where directories on DVD-RAM disks could get corrupted when switching disks have been corrected (r. 2545573).

Back to top



ColorSync 3.0.3

ColorSync provides system-level color management that enables publishing software to achieve repeatable, and consistent color on-screen, in print, and for electronic delivery.

  • Changes have been made in the user interface to ensure the user can only pick gamma values that are within the range that can actually be used by a display. Specifically, the gamma calibrator will no longer allow selection of negative gamma calibration values (r. 2496933).

  • The ColorSync Profiles installed with Mac OS 9.1 have been updated to the current ICC standard (r. 2505195).

  • Alpha channels are now preserved in calls to CWMatchBitmap where a progress proc has been specified (r. 2318181).

  • CMLaunchControlPanel now works correctly (r. 2384459).

  • ColorSync now requires a valid version field in profile headers as specified in the ICC Profile Format Spec (r. 2404863).

  • Requests to copy path based profiles with CMCopyProfile would always fail with an error -43. This problem has been corrected (r. 2411802).

  • It is now possible to set the model number property of a profile by way of AppleScript commands. These commands existed before, however they did not work as expected (r. 2417435).

Back to top



FireWire Support 2.7

FireWire is Apple's Mac OS support for the IEEE 1394 High Performance Serial Bus standard. This extension adds services to the Mac OS that support the use of third-party FireWire hardware and software.

  • A crashing problem that could occur when Unplugging/Replugging devices during QuickTime movie Playback has been corrected (r. 2520111).

  • A problem where a third party application could hang on wake from sleep when a number of FireWire devices were connected has been corrected (r. 2452899).

  • Some older DV camcorders do not send video correctly when connected to a FireWire hard disk drive. Customers using Final Cut Pro or iMovie to record video onto a FireWire hard disk drive may have experienced lost video frames when using such cameras. FireWire 2.7 will make older cameras send video correctly when a FireWire hard drive is present. (rr. 2408186, 2404727, 2398097).

  • FireWire now supports multiple matching data in SBP-2 drivers. If the symbol TheDFMDescriptorSize is present, multiple matching data will be evaluated. This allows a driver to precisely match several different devices, without using range matches that could pick up unwanted additional devices. If used, TheDFMDescriptorSize should have a value equal to the number of matching data sets present - such as 2. For an example. see the file FWSBP2DiskDriver.c in the FireWire SDK.

    Note:
    If a driver with multiple matching data is loaded by FireWire 2.6 or an earlier version, only the first matching data will be used.



  • Some third party FireWire drivers re-use their command object when calling FWWaitForDeviceReplug. This is illegal and causes a hang. As a convenience to our customers, in this specific case only, we now check for improper command object re-use and tolerate it.

  • A problem where a hang would occur as a result of a retry counter not being decremented has been corrected (r. 2323090).

  • Changed LynxFWIMGetCycleTime to not try to read PCI registers when the PCI bus might be powered off or PCI Memory Space might not be enabled (r. 2452899).

  • Drivers can now pin their DFM scores to a maximum value by exporting a table of maximum scores called MaxDFMScores. There is one unsigned 32 bit entry for each entry in TheDFMDescriptor and its value is the maximum score desired for that entry. This allows drivers to exactly match on some values but still generate a low score and thus allow other parties to override it (r. 2526813).

  • FireWire will no longer send write responses to broadcast writes on OHCI systems (as specified in 1394).

  • FireWire now implements the BUS_TIME register correctly, as required by 1394.

  • A problem where bug where transmit isoch timestamps could be off by 4 seconds on Uni-N systems has been corrected.

  • All OHCI timestamps now have the full 7 bits of seconds (Previously only 3 bits were provided).

  • A problem where FireWire could hang on wake from sleep when both a firewire hard drive and a firewire camera were connected has been corrected (r. 2452899).

Back to top



HTMLRenderingLib

HTMLRenderingLib is Apple's lightweight HTML rendering engine capable of displaying HTML 3.2 files.

  • Applications are now passed all url types in their optional URL redirection routine installed by calling HRRegisterNewURLUPP. Previously, http type URLs were handled by the HTMLRenderingLib and were never seen by the URL redirection routine. Now, http type URLs will only be handled by the HTMLRenderingLib when either no URL redirection routine has been installed or when the installed URL redirection routine returns hrURLNotHandeldErr (r. 2418857).

  • Calls to the HTMLRenderingLib would sometimes leave the GrafPort's origin or clip region in an unknown state. This no longer occurs (r. 2406856).

  • It is now possible to call the HTMLRenderingLib from stand-alone code resources (r. 2459981).

  • The routine HRUtilGetURLFromFSSpec was not adding a trailing '/' character when constructing URLs referring to directories. Now it does (r. 2407002).

  • The Cursor now changes to a hand when it is positioned over links (r. 2502044).

  • Visited links were not being re-colored appropriately under some circumstances. This has been corrected (rr. 2309910, 2484091).

  • A problem where bullets would overlap in ordered lists when the HTML source contained unrecognized tags has been corrected (r. 2362018).

  • A problem that could occur when attempting to display a frames document when all of the frames have the same name has been corrected (r. 2430596)

  • HRGetRenderedImageSize was returning the vertical size of an image, minus two pixels. now, it returns the correct size (r. 2468994).

  • Rendering a large table with missing closing TD tags could cause a crash. This has been corrected (r. 2514177).

Back to top



IrDA

The IrDA extension provides an infrared communication link between print drivers and IrDA-capable printers.

  • A problem where a crash could occur when performing several consecutive print jobs has been corrected (r. 2512225).

Back to top



Mac OS Runtime for Java

Mac OS Runtime for Java (MRJ) is Apple's implementation of the Java runtime environment. MRJ supports running Java applications, and enables Mac OS applications that use MRJ's JManager API to embed Java applets and other Java content.

  • JAR files are now read in a more efficient and memory conscious way (r. 2001604).

  • Applet Runner now uses Navigation Services to select files when running on systems where Navigation Services is available (r. 2287732).

  • WHWindow.cp's destructor is now virtual (r. 2421498).

  • A problem where Java would crash when a force quit has been corrected (r. 2472481).

  • A null pointer exception that could occur when closing a window has been corrected (r. 2485969).

  • To assist in localization the following awt.properties have been added (r. 2487549):

    #The name of the Java Console window
    AWT.console.name=Java Console
    
    #Java Console Edit Menu item names
    #These names should be localised.
    AWT.editmenu.title=Edit
    AWT.editmenu.undo.name=Undo
    AWT.editmenu.cut.name=Cut
    AWT.editmenu.copy.name=Copy
    AWT.editmenu.paste.name=Paste
    AWT.editmenu.clear.name=Clear
    AWT.editmenu.selectall.name=Select All
    
    #This is the font and size used inside the console window.
    #This should be left as is.
    AWT.console.fontname=Monaco
    AWT.console.fontsize=9
    


  • Problems redrawing large images have been corrected (r. 2490722).

  • FileInputStream will now set it's member variable fd to NULL when it can't open a file (r. 2508818).

  • MRJ now allocates a larger memory pool the first time malloc is called (r. 2510365).

  • A problem where Applets with startup errors could crash Apple Applet Runner has been fixed (r. 2511642).

Back to top



Multiple Users 1.3

Multiple Users is a multi-user software extension that provides the capability for a number of users to access a single computer. Each user logs in to her own environment that provides her own preferences and some file security.

  • Better support for networking environments (Macintosh Manager) has been added.

  • New support for KidSafe is now included.

Back to top



Network Services Location (NSL)

Network Services Location (NSL) allows you to register and search for services on a network in a protocol-independent fashion. New features for NSL include:

  • Network browser was inappropriately displaying the message "name server not responding" in some circumstances. This problem has been corrected (r. 2406166).

  • The routine NSLStandardGetURL was not appropriately disposing of all of the thread manager tasks it had allocated. Now it does (r. 2424817).

  • A problem where NSLStandardRegisterURL could crash under low memory conditions has been corrected (r. 2429189).

Back to top



Open Transport 2.7.4

Open Transport is the networking technology for Mac OS 9.1.

  • Open Transport no longer uses ASLM.

  • A problem where a data block could be reused even though it had a positive reference count has been corrected. This problem was most apparent when using Ethernet in promiscuous mode (r. 2459754).

  • It was possible for a crash to occur when switching the TCP configuration from BootP to DHCP. This has been corrected (r. 2471989).



  • IMPORTANT:
    Open Transport, like the Memory Manager, Resource Manager, QuickDraw, etc., cannot safely be called at interrupt time. Just as with those managers, if Open Transport is called at interrupt time, it will lead to memory corruption and and eventual crashes. Open Transport 2.7.4 includes improved error checking to detect invalid interrupt-time calls. In several cases where Open Transport could previously corrupt memory and crash, it now returns error codes such as kOTBadSyncErr, as described in "Inside Macintosh: Networking with Open Transport", page 137.

    However, unlike most other managers, Open Transport can be called safely from deferred tasks. If your software needs to use Open Transport from an interrupt-time routine, such as a timer task, VBL task, or I/O completion routine, use OTScheduleDeferredTask, described in "Inside Macintosh: Networking with Open Transport", page 534.

Back to top



OpenGL 1.2

OpenGL for Macintosh is Apple's implementation of Silicon Graphics' industry-standard 3D graphics API.

  • Additional Velocity Engine optimizations have been added including Velocity Engine support in the compiled vertex array path.

  • OpenGL can now draw anti-aliased lines and points.

  • Support for TCL drivers has been added.

  • The following extensions have been added to OpenGL:
      extensions
    • GL_ARB_texture_env_add, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_texture_env_combine, GL_EXT_clip_volume_hint, GL_EXT_rescale_normal, GL_NV_texgen_reflection, GL_EXT_texture_lod_bias, GL_EXT_SGIS_texture_edge_clamp, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_texture_lod_bias, GL_EXT_SGIS_texture_edge_clamp, GL_ARB_transpose_matrix, GL_ARB_texture_compression, GL_APPLE_packed_pixels, GL_ARB_texture_env_add, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_texture_env_combine, GL_EXT_clip_volume_hint, GL_EXT_rescale_normal, GL_NV_texgen_reflection, GL_EXT_texture_lod_bias, GL_EXT_SGIS_texture_edge_clamp, GL_ARB_transpose_matrix.

    • Now supported in the software renderer:

      GL_EXT_abgr, GL_EXT_bgra, GL_EXT_texture_lod_bias, GL_EXT_SGIS_texture_edge_clamp.


  • Support for non-coherent memory in the compiled vertex array path has been added.

  • It is now possible to add fog in the compiled vertex array path.

  • ARGB32 textures in 16-bit color are now supported.

  • Features improved support for OpenGLProfiler library.

  • TCL support at the GLD layer is now enabled.

  • OpenGL 1.2 standard is now in the interfaces.

  • GL_ARB_texture_compression and GL_APPLE_packed_pixels are now included in the interfaces.

  • LRU/MRU texture paging is now supported with ATI hardware.

  • Several optimizations to texture upload path have been added.

Back to top



PlainTalk

PlainTalk provides both speech recognition services and services for the translation of text into audible speech. The Mac OS 9 installation ships with English Text-to-Speech 2.0.2, Plaintalk Speech Recognition 2.0, and Mexican Spanish Text-to-Speech 2.0.2. English Text-to-Speech is installed as part of the default Mac OS 9 installation. In Mac OS 9.1 English Localized versions, Plaintalk Speech Recognition 2.0 is installed as part of the standard install. For other localized versions of Mac OS 9.1, it can be installed as a custom install option. On some localized OS releases, individual Plaintalk components, may be moved to the CD Extras folder on the System Software CD or removed entirely from the OS.

  • A problem where the effects of the "Make this application speakable" Speakable command would not be recognized until speakable items was quit and restarted has been corrected (r. 2496982).

Back to top



QuickTime 4.1.2

QuickTime provides various multimedia services for the Mac OS including the ability to display movies and facilities for the translation and display of various audio and visual data file formats.

Mac OS 9.1 includes an improved version of the Digital video (DV) codec. Improvements in this version of the DV codec provide significantly better performance and quality over previous versions. These changes should be of benefit to all QuickTime developers, especially developers using video editing applications.

  • High-quality decompression has been optimized for both Power Mac G3 and G4 computers. This includes improved speed for rendering in r408 and v408 formats, improved speed for playback to YUV accelerated windows, and improved speed for high-quality, single field video.

  • The quality the rendered images produced by normal (low) quality decompression on Power Mac G4 computers has been improved.

  • The quality of the compression in medium and best-quality cases for Power Mac G3 and Power Mac G4 computers has been improved.

  • Multiprocessor support has been enabled for vector decode (i.e.,high quality, low quality,playback and scrub/render). Multiprocessor support has also been enabled for encode in the vector case. For the actual DV operation, the results are nearly two times faster on a two CPU computer than the same code running in non-multiprocessor mode.

Back to top



Time Synchronizer

Time Synchronizer is a faceless background application that synchronizes the computer's clock over the Internet.

  • Time Synchronizer could hang if the location stored in PRAM could not be found in the location database (r. 2499437).

  • Alerts explaining error conditions detected at startup preventing the Time Synchronizer from running were not being displayed (r. 2500473).

Back to top



URL Access 2.1

URLAccess is a shared library providing high-level Internet APIs. This facility allows clients to download or upload data from or to the Internet. With this API, all applications can become Internet-enabled with just a few additional calls.

  • URL Access now supports with SSL Ref v3, 128-bit encryption.

Back to top



USB Printer Sharing 1.0.1

It allows users to share their USB printers over TCP/IP (physical or wireless).

  • Mac OS 9.1 ships with USB Printer Sharing 1.0.1.

Back to top






Fonts

Fonts provide information used in drawing characters to the screen and to other graphics devices.

  • A LineFeed cmap entry has been added to all fonts installed with Mac OS 9.1 (r. 2487954).

  • The sidebearings from the kashida glyph were removed from the Arabic fonts to allow better justification of Arabic text in Textension (r. 2343333).

  • The priority of the kashida character was changed in the Arabic fonts so it will be used appropriately in justification (r. 2503404).

  • Korean System Fonts now support Unicode (r. 2444584).

Back to top




Apple Menu Items

Items in the Apple Menu Items folder appear in the Apple Menu.



Sherlock 2

Sherlock provides search facilities for Mac OS computers. In addition to the traditional capabilities of the Find application, Sherlock supports searching by content and Internet searches.

  • The forward delete key now works as expected in Sherlock (r. 2457688).

  • Inline input now works correctly in the Save Custom Settings dialog (r. 2498288).

  • Sherlock now uses user@host rather than an email address for a password when establishing an anonymous FTP connection (r. 2463751).

  • The "Open Enclosing Folder" now works correctly (r. 2383272).

Back to top



Apple System Profiler

The Apple System Profiler (ASP) provides a simple way to obtain information regarding the current system configuration. Information provided by the Profiler is useful for customer support representatives in assisting users.

  • ASP now displays the CarbonLib version.

  • ASP is now capable of reading reports generated by the ASP found in Mac OS X.

  • Now correctly displays a PowerBook G3's modem as 33.6 and the protocol as "V.34".

  • ASP no longer displays "VRAM" size on machines that do not have built-in VRAM/video cards

  • ASP features improved facilities for identifying memory configurations on iBooks, and for identifying PC66 memory.

  • ASP now matches FireWire drives to the FireWire nodes.

  • ASP features improved facilities for displaying USB related information including:

    • Some issues related to finding USB buses have been corrected.

    • USB Printer Sharing support

    • ASP was describing USB "serial" printers as type "serial". ASP now describes USB serial printers as type "USB".


  • ASP's AppleScript support has been improved in the following ways:

    • ASP would crash when processing requests asking specifically for System Folder information and nothing else.

    • ASP would fail when trying processing requests asking specifically for devices and volumes information and nothing else.

    • ASP wouldn't return Power Mac G4 (AGP Graphics) serial numbers. Now it does.

    • ASP didn't return mulitple user's name/environment or video note. Now it does.

    • Scripting terminology has been changed as follows:

          "AtEase" is now "At Ease"
          "MultipleUses..." is now "Multiple Users..."
          "StartupDisk" is now "Startup Disk..."
          "...logicboard..." is now "...logic board..."
          


    • Fixed TCP/IP comments that referenced AppleTalk.

    • The Unique logic board ID returned by ASP now returns a different number that is more unique than the previous set of ID values returned.



  • ASP no longer marks slower RAM, as many users were interpreting this as a "bad" thing, while all it really means is that the computer runs at the speed of the slowest RAM (a minor speed difference). ASP continues to show the speed of the RAM, to allow users to buy matching RAM speeds, if they choose.

Back to top




Utilities

Utilities include items useful for maintaining your computer. Normally, these items are placed in the Utilities folder on your startup volume when you install your system software, but some of them can be found in the "Utilities" folder on the Install CD.





Disk First Aid

Disk First Aid is an application program that provides disk diagnostic and repair services. It is normally located in the Utilities directory in the startup disk's root directory.

  • DFA detects and replaces code in an HFS Plus "wrapper" for volumes that were initialized with Mac OS 9.0.x. This prevents a crash or hang early in boot when the boot volume has lots of files or directories (typically 100,000 or more).

  • Now DFA refuses to repair when logged in as a Panel user and the volume has open files.

  • DFA will not complain if a Mac OS Extended (HFS Plus) volume indicates certain text encodings are in use, even when they aren't actually in use. These will be updated if any other repairs are performed. This is most likely to occur when language kits have been used (r. 2406117).

  • Disk First Aid might mistakenly identify a Mac OS Extended (HFS Plus) volume that was re-initialized as a Mac OS Standard (HFS) volume as a Mac OS Extended volume and report that is unable to repair the volume. This problem has been corrected (r. 2509928).

  • When writing a volume header or alternate volume header, the signature and version fields are always set to their correct values.

  • DFA will not generate an error if the next CNID is on volumes containing no files or folders.

  • DFA will now properly check the space used by a startup file. This fixes an incorrect error message about some Mac OS X startup volumes (r. 2455546).

  • A possible off-by-one error in checking the next CNID has been corrected.

  • When repairing an orphan directory thread record, DFS will now start searching at the first leaf node. Previously, some nodes could have been skipped, causing the repair to fail (r. 2496023).

  • When repairing a volume with open files, DFA now copies the parallel Extents data to the parallel Extents FCB, and not to the parallel Catalog FCB. Also, DFA copies HFS Plus extent information to the ForkControlBlock if available, or to parallel FCB (r. 2412846).

  • DFA no longer generates an error regarding the next CNID if an HFS Plus volume has had its CNIDs reused.

  • When trying to figure out the volume type, DFA now uses the alternate volume header before the main volume header.

  • DFA can now accommodate larger B-trees (r. 2405114).

  • DFA no longer generates bad error message on volumes containing large numbers of long filenames (r. 2404773).

Back to top



Drive Setup 2.0.3

Drive Setup provides facilities for updating hard disk drivers and for formatting hard drives.

  • Problems with the visual appearance of the partition selection box with some drives have been corrected (r. 2392640).

  • Drive Setup will not allow the drive to spin down if Test disk is running on DVD-RAM media (r. 2451144).

Back to top




Apple Extras

Apple Extras include a number of items placed in on your hard drive during system installs. These items may include utilities, tools, or programs meant for specific purposes.





CD Audio Player

The CD Audio player is a utility that allows you to play audio CDs.

  • A problem where the CD Audio Player could trash some LowMem Globals has been corrected (r. 2502234).

  • The CD Audio player will no longer show the data session as an extra track at the end of track list when a Multisession enhanced audio CD is inserted (r. 2509403).

  • Problems playing and displaying track times for Multisession enhanced audio CDs have been corrected (rr. 2510627, 2510686).

Back to top



World Text

An MLTE based text editor that allows Unicode text editing.

  • New MLTE based text editor found in the cd extras folder on the cd.

Back to top



MacsBug 6.6.3

MacsBug is Apple's low-level debugger, providing a user interface for the disassembly and perusal of machine-level instructions.

  • MacsBug 6.6.3 should be used with Mac OS 9.1 (r. 2540060).

  • Even better bus error's magic address now points to a no-access page in memory. Any attempts to either read or write to this address will enter MacsBug with and EBBE error.

Back to top



Downloadables

Acrobat

Acrobat version of this Note (2M)

Download

Back to top


Technical Notes by Date | Number | Technology | Title
Developer Documentation | Technical Q&As | Development Kits | Sample Code




Gray line

Contact ADC |  ADC Site Map |  ADC Advanced Search
For information about Apple Products, please visit Apple.com.
Contact Apple | Privacy Notice
Copyright © 2002 Apple Computer, Inc. All rights reserved.
1-800-MY-APPLE