Technote 1163

Mac OS 8.6

By John Montbriand
Apple Worldwide Developer Technical Support

Being a compendium of revised and new features of interest to software developers in release 8.6 of the Mac OS.

This technote discusses changes in and corrections to the next generation of Mac OS: Mac OS 8.6. This system follows Mac OS 8.5.1 (the majority of whose features are found in Mac OS 8.5) and contains several new and revised features, including:

  • improved multiprocessor support
  • support for new Apple CPUs
  • improved QuickDraw Text performance
  • better MRJ performance
  • bug fixes

Revision History

5/17/1999 - HD Toolkit 3.02 mentioned, updated TEC section, updated Memory Manager section, updated EBB warning in PlainTalk section. -JM


Hardware Requirements

Mac OS 8.6 can be installed on any Macintosh that originally shipped with a PowerPC processor that has at least 24 megabytes of physical RAM and a minimum of 32 megabytes of logical RAM (virtual memory is set to 64 megabytes by default if there is less than 64 megabytes of physical RAM installed). Also, Mac OS 8.6 can be installed in the Mac OS Compatibility environment ( in the Mac OS X Server) by way of standard install.

Mac OS 8.6 is tested and qualified by Apple to run on Apple PowerPC-based Mac OS computers. (Mac OS 8.6 is not tested or qualified by Apple for use on Mac OS-compatible computers.)

Back To Top


It is strongly recommended that Hard Disk Toolkit version 3.02 (or later) be used to format a boot volume or update its driver when Mac OS 8.6 is to be used as the system on the volume. The driver installed by versions 3.0.1 and earlier versions of the Hard Disk Toolkit has not been fully qualified for use with Mac OS 8.6.

Install Mac OS 8.6

The "Install Mac OS" application program requires System 7.1.2 or later to run, allowing users to install the full CD-ROM system installation of Mac OS 8.6 over System 7.1.2 or later. Users running Mac OS 7.5.1 or earlier are required to boot from the CD to perform an installation. New and improved features include:
  • End user and administrator features/bug fixes:

    • Support for large volumes - support has been added to allow installation on volumes larger than 12 GB.

    • Support for USB drives - floppies in USB drives can now be ejected.

    • Appearance - more consistent with the system look and feel.

  • Developer and scriptwriter features/bug fixes:

    • Name Registry support in rules - rules have access to information in the Name Registry.

    • Finder XFileInfo - the Finder Extended flags are saved and restored during an installation.

  • Better handling of creating folders in action atoms - empty folders created in action atoms are not deleted.

    Related Materials:

Back To Top

Finder 8.6

The Finder provides a graphical interface for the user, along with other Apple Event-based services for applications utilizing the file system. The following changes and corrections are present in the new Finder:
  • A problem on some PowerBooks where icons in the main drive window would not be drawn when it was opened after the main drive was spun down has been corrected.

  • A problem that could occur when copying a number of files from a Sherlock window to a folder containing some of the files being copied has been corrected. In these cases, Sherlock would ask if the duplicate items are to be replaced. If the user responded "yes", then Sherlock would proceed to delete them before the copy (and the copy would fail since some of the source items were deleted).

  • A problem where a crash could occur in the Finder when an attempt was made to use an alias file referring to an object on a volume that had been unmounted since the last time the alias was used has been corrected.

    Related Materials:

Back To Top


Apple Help 1.2

Apple Help provides system-wide instructional help services for virtually all aspects of Mac OS. The Apple Help technology has two main components: Apple Guide and Help Viewer.

Apple Guide 2.4.1

Apple Guide is used to coach users through sequences of commands required to perform a task. Apple Guide 2.4 provides the following new features:

  • Support for guides that can open HTML help with Help Viewer. To indicate that Apple Guide should use the Help Viewer to open a document, an HTML resource of ID 1000 is placed in the guide along with a named 'TEXT' resource that matches the menu name. If the path points to a file of type 'TEXT', then it is opened with Help Viewer. If the path points to a file of type 'APPL', then it is launched. AGOpenWithSearch has been modified so that the search string is used to retrieve the 'TEXT' resource with the same name. It then follows the same rules as mentioned above. There is now support for AGOpen: when called, it performs the same function as if the guide had been selected from the Help menu.

  • OpenNamedSequence Scripting Interface: Using AppleScript or AppleEvents, sequences may now be opened by name. To use this functionality, guides must be compiled with AGVAT 1.0b11 or later; the 'MnMp' resource from the Guidemaker 2.0 SYM file is NOT compatible.

Help Viewer 1.2

Help Viewer is a lightweight HTML-rendering application that allows users to browse online help materials conveniently. Help Viewer 1.2 provides the following facilities:

  • Adds support for a larger subset of the HTML 3.2 standard in HTML files.

  • Adds support for QuickTime by way of the <embed> tag. The <embed> tag is typically used for plug-ins, but only QuickTime movie files are supported at this time.

  • Aliases can be placed in the Help folder to reference help content on a CD or server. Aliases may be placed at any level inside the System Help folder; however, it is highly recommended that aliases are implemented by aliasing the entire help folder or by aliasing the content (with the exception of files containing Apple Help META-TAG information and Apple Help indexes).

  • Addresses issues associated with having books of different languages installed in the Help Viewer. These issues stem from the fact that content developers need to be able to specify the font for a dynamic Table of Content entry. Other issues stem from the fact that different AIAT Analysis algorithms are used based on the indexing language of the help content.

  • A new developer SDK.

    Related Materials:

    • Apple Help SDK 

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 8.6, even when the Shift key is held down at system startup.

ATSUI (Apple Type Services for Unicode Imaging) 1.1

Unicode is a character set that 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.
  • Client control over heap allocation: This change allows clients to select the heap in which ATSUI memory allocations are made.

  • Client control over font fallbacks: In version 1.0, clients can tell ATSUI to use a fallback font to image any glyph that it is not in the font referenced by the attribute run. However, they do not have any control over which font is selected. Clients are now able to specify the font that ATSUI uses for fallbacks and to assign priorities by Unicode range (for example, the Unicode Japanese character range should default to the Osaka font).

  • Access to individual line controls is now available, allowing clients to more easily implement features such as tabs, indentation, and text flow around embedded graphics.

  • Several new APIs have been introduced, filling gaps in the original API.

  • Additional elements have been added to the ATSUI API allowing for control over character kerning in individual style runs of text.

    Related Materials:

Back To Top

Dvorak Keyboard Layouts, 1.0

The Dvorak keyboard layouts allow the use of Dvorak keyboards without having to install any special software or keyboard layouts.
  • Version 1.0 of the Dvorak keyboard layouts are included in the System file. They may be selected by the user in the Keyboard control panel.

Edition Manager

The Edition Manager allows users to share and automatically update data from numerous applications and documents.

Back To Top

Event Manager

The Event Manager manages the delivery of events to applications. Changes in the Event Manager include:
  • On entry to a jGNE filter routine there is a pointer to an EventRecord in register A1 and a Boolean value hasEvent in the stack. Historically, hasEvent has been set to "true" whenever the event record pointed to, in A1, contains an event (i.e., is not a nullEvent); however, in Mac OS 8.5 and later this may not always be the case.

jGNE code looking for nullEvents by checking the stack-based Boolean may not always work correctly in Mac OS 8.5 or later. To find nullEvents, such code should examine the "what" field in the event record itself rather than looking at the stack-based Boolean.

Related Materials:

Back To Top

File Manager

The File Manager provides services for storing and retrieving disk-based information. New features for the File Manager include:
  • Asynchronous File Manager requests that are made to the HFS/HFS+ file system, made at interrupt time, or made when the File Manager is not busy handling another request are executed immediately if they do not require access to the disk drive to complete the request. In earlier system releases, those requests were run from a deferred task. Asynchronous File Manager requests made at interrupt time to foreign file systems, or that require access to the disk drive, still run from a deferred task. The change removes unneeded latency in many cases.

  • The disk cache's flush task (see The File Manager section in the Mac OS 7.6 technote) now calls FlushVol to flush cached volume blocks if the kVCBFlagsIdleFlushBit and the kVCBFlagsVolumeDirtyBit are both set in the volume's vcbFlags word. This ensures data stored in Volume Control Blocks (VCBs) and File Control Blocks (FCBs), but not yet written to the disk cache, is flushed to disk. The kVCBFlagsIdleFlushBit is set on HFS and HFS+ volumes. Foreign File Systems may set the kVCBFlagsIdleFlushBit in their volumes' vcbFlags if they want the same behavior from the disk cache's flush task.

    Related Materials:

Back To Top

Folder Manager

The Folder Manager provides facilities for locating "special" folders (such as the Extensions folder) without relying on the names of those folders. This aids developers in application localization.

In Mac OS 8.1, 8.5, 8.5.1, and 8.6, calls to FindFolder specifying the kDocumentsFolderType folder with the create parameter set to kCreateFolder will not create the folder if the folder does not already exist. Developers wanting to create a documents folder can create one using the location and name returned by GetFolderDescriptor.

Developers should not assume that the kPreferencesFolderType folder is located in the System Folder. In future system releases it may be located elsewhere. Always use both the vRefNum and the dirID returned by FindFolder to establish the location of this folder.

Related Materials:

Back To Top

Font Manager

The Font Manager provides system-wide services for the retrieval of glyphs for display of textual information.
  • Improved Font Manager stability when there are hundreds of fonts in the Fonts folder.

There is still a limit of 128 font suitcases that can be present in the Fonts folder. In order to place more than 128 fonts in the fonts folder, font suitcases must be combined.

There are some discrepancies between the widMax values returned in FontInfo and FontMetrics structures for ATM-J fonts under Mac OS 8.5 and Mac OS 8.6. Developers should not assume that the same widMax value will be returned for ATM-J fonts when their code is running on one or the other version of Mac OS.

Related Materials:

Back To Top


Mac OS 8.6 introduces locales for retrieval of language and region specific information and parameters for use in other Mac OS services.
  • Facilities are provided for retrieving parameters that can be used in conjunction with the Unicode Text Utilities for collating text.

  • Locales can be used for enumerating supported locales for particular types of operations, retrieving user visible names for locales, and retrieving user visible names for operation classes.

  • Information for each locale is stored in a separate file in the Locales folder (kLocalesFolderType = 'ƒloc', located in the System Folder).

The contents of locale files is undocumented and will probably change in future releases of the Mac OS. Do not access the contents of these files directly - use the public APIs for accessing the information they contain.

Related Materials:

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.
  • The menus in some applications would not work correctly the first time they were used with the mouse. These applications were relying on an undocumented behavior found in previous versions of the menu manager. The menu manager has been modified so these applications work correctly.

  • To improve menu bar drawing performance, the menu bar drawing routines now use a cached off-screen GWorld rather than allocating and disposing of one every time the menu bar is drawn.

  • Menu drawing for long, scrolling menus has been sped up.

  • A problem where menus would not redraw or scroll correctly after monitor resolution changes has been corrected.

  • A problem where the default extended menu attributes could become corrupted when loading a menu with extended attributes has been corrected.

  • The Menu Manager no longer reads from address "zero" while tracking empty menus.

  • Menus now redraw correctly when video mirroring is turned on.

  • Menus were not being redrawn correctly after a menu item's mark was changed. This has been corrected.

  • The menu size is now calculated correctly after calls to AppendMenuItemText, InsertMenuItemText, or SetItemCmd.

  • In Mac OS 8.5, calling DeleteMenuItem for one of the first 31 menu items in a menu that has more than 31 items would damage the enable state for the menu item moved to the 31st position. Similarly, calling InsertMenuItem to insert items before position 32 in a menu that has 31 or more items would damage the enable state for the menu item moved to the 32nd position. These problems have been corrected.

  • The routines HideMenuBar and ShowMenuBar were not recalculating the desktop region correctly. Now they do.

    Related Materials:

Back To Top

Memory Manager

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

NewPtrrequests made to the Modern Memory Manger can occasionally fail even if the size parameter is substantially smaller than the size returned by MaxBlock. This failure can only occur under a very specific set of circumstances when the memory manager must shuffle relocatable blocks to make space for NewPtr requests. In Mac OS 8.6 the Modern Memory Manager has been modified to minimize the possibility of this problem occuring. Code that checks the result of NewPtr requests for failure should be unaffected by this problem. Code that assumes that all NewPtr requests will be successful when requesting blocks smaller than the size returned by MaxBlock and does not check for allocation errors may crash.

Related Materials:

Back To Top

QuickDraw Text

QuickDraw Text is the part of the MacOS used for drawing and displaying textual information on the screen and other raster devices. Along with several performance improvements, the following changes have been implemented:
  • A variety of QuickDraw Text bug fixes related to drawing text at large font sizes (greater than 200 point) have been added. This allows drawing of antialiased text over 200 point.

  • DrawString performance has been improved.

  • The size of the font table fragment cache has been changed to accommodate larger, more complex fonts. Normally, when the font table fragment cache is allocated, its size used to be determined by computation purely based on available physical RAM. This determination gave a default size of 144K cache for systems with up to 48MB of RAM, 216K for systems with up to 96MB of RAM, and 288K above that. While this works well for simple Latin fonts, there are some fonts that are so complex that they exceeded this cache size. There was no recourse in these cases; the font would not render correctly, because the entire metamorphosis table could not be loaded all at once. So the system now checks for the presence of an optional 'fcsz' resource, 4 bytes long, which contains an override to the calculated limit described above. The value in this resource may be whatever is desired; however, there are two constraints. First, if the value in the resource is less than the calculated value, then the calculated value is used and the resource value is ignored. Second, the value in the resource is constrained to being no greater than 1/16th the size of physical RAM. If the resource value is greater than this, it will be reduced to exactly this value.

  • The new calls SetAntialiasedTextEnabled, IsAntiAliasedTextEnabled, QDTextBounds, and FetchFontInfo have been added to InterfaceLib. These routines are documented in the Mac OS 8.5 technote.

Developers linking against the routines SetAntialiasedTextEnabled, IsAntiAliasedTextEnabled, QDTextBounds, and FetchFontInfo in InterfaceLib who would like to have their products run with previous versions of the system software should weak-link against these new symbols. Unless this is done, the Code Fragment Manager will refuse to launch applications using the new symbols when an older version of InterfaceLib is being used. Developers weak-linking against any of the new symbols in InterfaceLib should check to ensure that the routines they weak link against are defined before calling them.

Back To Top

SCSI Manager

The SCSI Manager is the part of the operating system responsible for communications with connected SCSI devices.

On machines running Mac OS 8.6 with no SCSI bus, the result code returned by calls to the old SCSI Manager routine SCSISelect return noErr rather than scCommErr (to indicate no attached device). To avoid this problem, drivers should use the new SCSI Manager 4.3 instead of the old SCSI Manager.

Related Materials:

Back To Top

Sound Manager

The Sound Manager provides facilities for playback and recording of digitized sounds.
  • SetSoundVol and GetSoundVol are no longer supported and have been removed from the interfaces. The implementation for SetSoundVol and GetSoundVol has been changed for PPC code to call the newer interfaces, GetDefaultOutputVolume and SetDefaultOutputVolume. The 68k implementation has been removed from Interface.o. Applications that have already been compiled and use these routines will continue to work in Mac OS 8.6; however, they will not recompile until these calls are replaced.

    Related Materials:

Back To Top

Text Encoding Converter 1.4.3

The Text Encoding Converter enables the conversion of text data from one encoding to another (e.g., Mac OS Roman to Windows Latin-1). It is targeted for Internet applications that need to handle text typically provided in non-Mac OS encodings.
  • The TextCommon and UnicodeConverter shared libraries that were formerly included in the Text Encoding Converter extension are now present in the System file. As a result, the Text Encoding Converter extension is no longer required in the Extensions folder for the system to boot correctly, even though the Finder may issue an incorrect alert when it is not present; however, the TEC extension is still present in the Extensions folder for compability with existing applications (as it contains the TextEncodingConverter shared library).

    Related Materials:

Back To Top

Text Services Manager

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.

Whereas a non-Unicode app has the option of not calling TSMEvent when setting its TSMDocument to bottom-line, a Unicode app (specifically an app using a Unicode TSM document) now must always call TSMEvent. This means that a Unicode application will always receive its input via TSM AppleEvents for both inline input and bottom line.

Related Materials:

Back To Top

Thread Manager

Provides facilities for permissive multi-threading on Mac OS computers.
  • A problem in the Thread Manager where any faceless background application supplying a thread termination procedure would crash when it was quit if 68K floating point emulation software was installed has been corrected. (Typically, this crash would only happen at restart, since this is the only time when a faceless background application is normally quit.)

    Related Materials:

Back To Top

Unicode Text Utilities 1.0

The Unicode Text Utilities provide a set of APIs for working with Unicode text. These APIs provide services for sorting and collating Unicode text. APIs to find word breaks, determine character properties, and so on are planned for a future Mac OS release.

Back To Top

USB Interface Module (UIM)

The UIM communicates with the USB controller hardware and provides a hardware abstraction layer for the USL (USB Services Library) and USB Manager.

In Mac OS 8.5, Mac OS 8.5.1, and Mac OS 8.6, the UIM does not use the BufferUnderrun bit correctly, thereby preventing bulk transfers from terminating correctly when a device sends a short packet. All packets used in bulk transfers must be full sized.

Related Materials:

Back To Top

Virtual Memory Manager

The Virtual Memory Manager provides virtual memory services for the Mac OS. The following changes have been made in the Virtual Memory Manager:
  • The minimum size setting for virtual memory is now 32 MB, or 1 MB plus the size of physical RAM, whichever is greater.

  • By default, a clean install of Mac OS 8.6 will turn virtual memory on with its size set to 64 MB or 1 MB plus the size of physical RAM, whichever is greater.

  • Virtual memory settings are preserved (or adjusted to the 32 MB minimum if they were lower than 32 MB) when installing over Mac OS 8.5 or Mac OS 8.5.1.

  • A potential crashing problem that could occur when LockMemoryContiguous was used on the System heap was fixed by locking a critical section of memory used by the Virtual Memory Manager.

    Related Materials:

Back To Top

Window Manager

The Window Manager provides facilities for drawing and maintaining windows on the screen. The following changes and corrections have been introduced in the Mac OS 8.6 release of the Window Manager:
  • SetWindowProxy calls no longer change the current GrafPort.

  • Desktop pictures no longer draw very slowly on machines with more than 700 megs of RAM.

  • Floating window support is now fully implemented.

  • Fixed a bug with video mirroring that could cause gray pixels to be copied to a color monitor in certain situations.

  • In Mac OS 8.5 and Mac OS 8.5.1, DragHook was not being called during calls to GrowWindow. This has been corrected.

Applications using the undocumented, unsupported, and obsolete Layer Manager interface for floating windows will not work in Mac OS 8.6.

Related Materials:

Back To Top

Control Panels

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

ColorSync 2.6.1

ColorSync provides system-level color management that enables publishing software to achieve repeatable, reliable, and consistent color onscreen, in print, and for electronic delivery.
  • This is a newly designed control panel with tabs for Profile, CMM, Calibration, and About. The About Box is similar to the QuickTime control panel,is used to display the URLs to the ColorSync and some third party web sites.

    Related Materials:

Back To Top

Startup Disk 7.7.4

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.
  • On computers capable of booting from a network, the Startup Disk control panel now displays a "Network Disk" icon that a user can select in order to boot from the network.

  • The Startup Disk control panel will also display a "Local Disk" icon on computers that have been net booted. This allows a machine that has been booted from the network to be booted from the internal drive even when all of the internal drives have been "hidden" via the NetBoot Drive Unmounter extension (which a network administrator may have done for all net booted computers). Choosing this item actually sets the boot device to the empty (default) string, which results in booting from the internal hard drive if one is installed and contains a blessed system folder.

Back To Top

System Extensions

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

Apple CD/DVD Driver

The Apple CD-ROM driver contains some enhancements for support of new Apple products, and corrects some problems found in previous versions of the driver.
  • DVD-RAM disks can now be formatted as HFS & HFS+.

It is possible to install Mac OS 8.6 on a DVD-RAM volume; however, it will not be possible to boot from such a volume since booting from a DVD-RAM volume is not currently supported by Drive Setup and the CD/DVD Driver.

Back To Top

AppleScript 1.3.7

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 that would be difficult or impossible to access by hand.
  • A memory leak that could occur while scripts are being compiled has been removed.

  • A 60-second timeout for error notifications in Folder Actions has been added.

  • The degrees Kelvin unit type has been added.

  • Folder Actions can no longer be attached to invisible folders.

  • An infinite loop could occur when attaching the folder action "add-reject added items" to an HD. This no longer happens.

  • AppleScript now uses Navigation Services dialogs.

  • A new native OSAX mechanism has been introduced (see the technote listed below).

  • Choose File now shows invisible files if no type is specified.

  • AppleScript now tries harder to find applications referred to in "Tell" blocks.

  • Set Volume scripting addition updated to use the new Sound Manager. It now calls GetDefaultOutputVolume and SetDefaultOutputVolume instead of the now-obsolete GetSoundVol and SetSoundVol interfaces.

  • A memory leak in the AppleScript 1.3 unit coercions has been removed.

  • Choose from List would unlock a GDHandle. This has been corrected.

  • The "miles" unit type could not be coerced into any other unit type. Now it can be coerced, as expected.

  • The Mount Volume command now supports escaped characters in URLs, optional user name and password parameters, and user names and passwords in URL formats.

  • The "Move-align open sub-folders" script works for pop-up subfolders.

  • Converting a string of type typeText to a string of type typePString did not work if the source string was greater than 256 characters long. This has been corrected.

  • A new type conversion from typeFSS to typeAlias has been added.

  • New coercions from enums, class types, and constants to strings have been added.

  • The "Quarts" unit type has been implemented.

  • Passing a class name to Display Dialog now displays the class name, not its code.

  • A memory leak that could occur when AppleScript failed to initialized has been removed.

  • The Folder Actions CMM and server now permit aliases to script files to be attached to folders.

  • Folder Action scripts now work on locked script files.

  • The Folder Actions server uses Notification Manager for "out of memory" warnings.

  • The Folder Actions faceless background application no longer quits when an operation runs out of memory.

  • The Folder Actions server now updates icon badges more quickly in the Finder.

  • The Applet shell was calling WaitNextEvent with a sleepTime of "0", thereby using more processor cycles than needed. This has been corrected.

  • A small memory leak that could occur when getting the application's name in an error handler has been removed.

  • Reentering a 68K OSAX would leave it unlocked. This has been corrected.

  • Intermittent crashes that could occur when loading Scripting additions have been addressed.

  • A problem where running two applets simultaneously and then quitting one would cause a crash has been corrected.

  • A memory leak that could occur when the Applet shell sends apple events to itself has been removed.

In Mac OS 8.5 and Mac OS 8.5.1 the presence of an AppleScript including a tell application block / activate command in the Shutdown Items folder will prevent normal system shutdown. To avoid this problem, ensure scripts in the Shutdown Items folder do not contain tell application block / activate commands.

AppleScripts including tell application blocks referring to an application when there is more than one copy (and possibly more than one version) of the application present may open the wrong copy. AppleScript will open the first copy of the application it finds which may not always be the right one. To ensure a script opens a particular application, script writers should find the application manually and then enclose the commands in a double tell block as follows:

     set theapp to application "Macintosh HD:System Folder:Scripting
Additions:Network Setup Scripting"
     tell application "Network Setup Scripting" -- this is for terminology
          tell theapp -- this is for runtime targeting
                      -- do what you want in this block
          end tell
     end tell

Related Materials:

Back To Top


AppleShare Workstation Client 3.8.3

AppleShare Workstation Client provides file sharing services for computers networked with file servers.
  • The AppleShare Client API used by both Navigation Services and the Network Browser has been upgraded to support third-party User Authentication Modules (UAM) for NT, Novell, and others. A new UAM selection dialog has been added, along with the code paths needed to interface with the UAM plug-ins.

  • This release improves Navigation Services support in the client.

  • A problem where the AutoRemounter was preventing sleep on some PowerBooks has been corrected.

  • Frequently called code installed by AutoRemounter has been optimized and the reliability of AutoRemounter has been improved.

  • A problem where client machines would hang after a server crash has been corrected.

  • Some formatting corrections have been added to the alerts displayed by the AppleShare client.

  • A problem where typing Japanese text into a password authentication dialog would not allow a server connection has been corrected.

  • AppleShare network status change alerts now timeout. After a network status change alert has timed out, the message text from the alert is catenated to the end of the "AppleShare Server Messages" file located on the desktop.

    Related Materials:

Back To Top

ColorSync 2.6.1

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

Back To Top

DrawSprocket 1.1.4

DrawSprocket provides drawing services coordinated with the display manager that are useful in game development. This version of DrawSprocket provides a number of corrections and fixes over previous versions:
  • DrawSprocket was switching to a different video mode even when the existing video mode satisfied the requested video attributes. This will no longer occur.

  • The possibility of a system hang that could occur in a page-flipped context if page 1 was being displayed when the context was swapped has been removed.

  • The user can now double-click to select a monitor in the choose dialog

  • Gamma tables are now restored correctly after launching a DrawSprocket application.

  • DrawSprocket now uses a more reliable method for selecting monitor frequencies than before.

  • DSpContext_FadeGamma wasn't working for some colors. Now it does.

  • A problem where negative scaling values were not being calculated correctly in the Gamma fade code has been corrected.

  • Valid values for gamma fading have been redefined as follows:

    • If no bias color is provided, then 0% represents black, and any positive percentage scales between black and the default gamma color. Any values that exceed the maximum gamma will be clamped to the maximum value. Negative percentages are not allowed.

    • If a bias color is provided, the minimum percentage is -100%, which maps to black. From -100% to 0, we scale between the black and the bias color. From 0 to any positive percentage, we scale between the bias color and the default gamma color. All values are clamped to the range of legal gamma values.

  • DrawSprockets was calling SetWRefCon on a CGrafPort. This has been corrected.

  • Page flipping context now restores regions on a pause.

  • Interleaved portRect is now set up properly. Previously, this could lead to a crash.

  • Page zero was not being restored after a baseAddr calculation for a non-zero page. Now it is.

  • Some private implementation-related information has been removed from the headers.

  • DrawSprocket was choosing lowest depth even in cases where the preferred depth was higher. This has been corrected.

  • ContextPrivate_NewCGrafPort was not calculating rowBytes correctly for bit depths less than 8 bits per pixel. This calculation is now performed correctly.

  • DrawSprocket was incorrectly disposing of a NULL CGrafPort.

  • Metrowerks runtime has been replaced with StdCLib.

  • Added support for new CPU models.

    Related Materials:

Back To Top

Find By Content

Provides system-wide search facilities for finding related files based on their content.
  • Find by Content now supports Text Extractor Plug-ins for extracting textual data from binary documents for inclusion in index files.

  • Find by Content can be set up (via the Sherlock preferences) to index only folders and files with a particular label, or only folders and files without a particular label.

  • Find by Content can be told, via a contextual menu in the Finder or via an AppleEvent to Sherlock, to index one or more selected files or folders.

    Related Materials:

Back To Top

InputSprocket 1.4.1

InputSprocket provides a consistent set of interfaces to various input devices such as joysticks that are useful in game development. This version of InputSprocket provides a number of corrections and fixes over version 1.3:
  • A problem where some third-party drivers or devices could sometimes cause other devices to disappear from the list of available devices maintained by InputSprocket has been corrected.

  • Some InputSprocket drivers had the wrong creator code. This has been corrected.

  • Some discussion of supported USB devices has been added to the Read Me file.

  • ISpGetVersion now returns the correct version number for the installed InputSprocket library.

  • New quit and start/pause labels have been added to replace the pause/resume labels.

  • The Input Sprocket 1.3 Rez header in Universal Interfaces 3.2 assigns the same key code (0x0063) to both the F3 and F7 function keys. F7 key has been redefined as 0x0062, its correct value.

    Related Materials:

Back To Top

LaserWriter 8 version 8.6.5

LaserWriter 8 provides the ability to print to PostScript printers.

Back To Top

Mac OS Runtime for Java 2.1.1

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.
  • MRJ 2.1.1 implements JDK 1.1.7 (with bug fixes from JDK 1.1.8H).

  • MRJ 2.1.1 is 3 to 5 times faster than MRJ 2.0.

  • MRJ network support is now asynchronous, and performance has been improved 3 to 4 times, as measured by the Volano benchmark.

  • The new Just-in-time Compiler provides substantial performance improvements.

  • MRJ includes its own internal preemptive threading package. This threading support has been substantially reimplemented.

  • MRJ now correctly implements the standard Java security features.

  • MRJ 2.1.1 now correctly handles loading applets via proxy servers.

  • Several memory leaks have been removed.

  • Applets that use percents for their height & width now display correctly in Microsoft Internet Explorer.

  • Fixes have been made for keyboard events, general event handling, text handling, and other areas.

  • MRJ 2.1.1 supports Swing 1.0.3 and 1.1, which are Sun Microsystems GUI extensions to Java.

  • Appearance Manager GUI components in MRJ's AWT (Abstract Window Tool) are implemented with the Appearance Manager and respond appropriately to theme switches.

  • Java Applications running under MRJ are fully Apple Scriptable, as are Applets running in Apple Applet Runner. The only developer overhead required is the creation of an 'aete' resource.

  • The JDK tools (from MRJ SDK 2.1) now create files with the correct type/creator.

  • "Append file..." option in JBindery (from MRJ SDK 2.1) now works correctly.

    Related Materials:

Back To Top

Multiprocessing API Library

The Multiprocessing API Library allows applications to perform preemptive multiprocessing operations on PowerPC computers equipped with more than one processor. The library also allows for preemptive multitasking on machines equipped with only one PowerPC processor. Several new features and APIs have been added to this release of the MP API Library:
  • Multitasking and multiprocessing integrated into the System.

  • MP Library can run on systems with VM enabled.

  • Existing MP applications run without changes.

  • Reduced RAM footprint (from 2MB+ down to 60K).

  • Full SMP capability.

  • High performance preemption-safe memory allocator.

  • Native timer support.

  • Per task-context variables.

  • Proportional share scheduling parameters.

  • Timeout enhancements to the wait on queue, semaphore, and critical region functions.

  • Suspend-on-Exception task model.

  • Integrated debugging support.

  • Task debugging primitives for high-level debuggers.

  • Mid-level advanced power-management process-manager support.

  • Low-level advanced power management support.

  • The ability to call the notify queue and signal semaphore functions from interrupt handlers.

  • Reserving notifications for queues to facilitate guaranteed message delivery.

  • Remote procedure call interface from preemptive tasks to cooperative tasks.

    Related Materials:

Back To Top

NetSprocket 1.1.1

NetSprocket provides a fast, lightweight client-server messaging service on top of the Open Transport API that are useful within games played over an AppleTalk or TCP/IP network. NetSprocket includes the following corrections:
  • A problem where NetSprocket clients could crash on disconnect has been addressed.

  • NetSprocket no longer returns invalid game references in callbacks.

  • NetSprocket Host dialog now uses the proper 'ictb' resource.

  • The first asynchronous callback being made on a host had a NULL game object reference. This has been corrected.

  • NetSprocket has been recompiled to use the StdCLib rather than Metrowerks runtime.

  • NSpDoModalJoinDialog was treating a NULL string passed for the game type as a regular string, rather than using the game type passed into NetSprocket initialize as it should have. This has been corrected.

  • NSpGetVersion now returns the correct version number for the installed library.

    Related Materials:

Back To Top

Network Setup Extension

The Network Setup Extension provides for programmatic configuration of the AppleTalk, TCP/IP, Infrared, and Remote Access settings.
  • Scriptability now works correctly for the ARA password.

Back To Top

Open Transport 2.0.3

Open Transport is the networking technology for Mac OS 8.6.
  • There was a conflict between 'TProvider' class definition and typedef of 'ProviderRef' in the header file "OpenTransport.h." That causes inconsistent use of 'class' and 'struct' keyword warning when compiling any source including "OpenTransport.h." This conflict has been removed from "OpenTransport.h."

  • Several bugs were fixed in the ARA endpoint API which prevented the Password and Authentication Type settings made through the API from working.

  • ARA password is now scriptable. This bug (in Network Setup 1.0) disallowed completion of a PPP connection without human intervention. Now that it is fixed, the process can be totally automated.

  • Under certain circumstances, Open Transport could starve out other deferred tasks. This will no longer happen.

  • The Open Transport PAP Client could only handle a transfer of 262 MB, at which point it would go into permanent "flow control." This will no longer happen.

  • When using AppleTalk protocols over PPP, DDP lengths were incorrect.

  • Several problems in Open Transport's DHCP implementation have been corrected.

  • In Mac OS 8.6, Macintosh DHCP clients no longer send a DHCPRELEASE when unloading the TCP stack. This enhances compatibility with several DHCP server implementations.

  • The TCP stack now remains loaded in memory unless a PPP connection is specified in the TCP/IP control panel.

  • Open Transport's PAP implementation now works properly with GCC and HP Laserjet printers.

    Related Materials:

Back To Top

PlainTalk 1.5.4

PlainTalk enables users to control their Mac by voice. It provides services to recognize speech and to convert text into audible speech. US English and selected localized versions of Mac OS 8.5 ship with English Text to Speech 1.5.4, Speech Recognition, and Mexican Spanish Text to Speech. English Text to Speech is installed as part of the default Mac OS 8.5 installation. Speech Recognition can be installed as a custom install option.
  • Support for 44.1 kHz sound input has been added, for running speech recognition on newer G3 machines.

  • New algorithms have been developed to allow speech recognition to run with the built-in microphone on the iMac.

  • The Speakable item script "Find by content" that references "Find" rather than "Sherlock" has been corrected to reference "Sherlock".

  • The Speech Recognition extension now correctly restores the sound input source to its original state when exiting. (In previous versions of Speech Recognition, users may have noticed some feedback being generated during shutdown.)

Parts of the Sound Manager's and Speech Manager's loader code assume the .Sony driver is installed in the Device Manager's unit table. This is an incorrect assumption on newer machines that have no floppy disk drive (and, hence, no need for the .Sony driver). As a result of this assumption, during the startup sequence, when this code attempts to access the .Sony driver, a NULL-handle dereference occurs causing a bus error when a utility such as MacsBug's Even Better Bus Error 'dcmd' is turned on.

Related Materials:

Back To Top

SoundSprocket 1.0

SoundSprocket extends the functionality of the Sound Manager so that some sound channels appear to be coming from a specific location and distance, and moving, in space. This effect can be presented over speakers, over headphones, or over headphones with head tracking.

Back To Top

UDF 1.5.2

Allows DVD-RAM disks to be used for storage of computer data. DVD-RAM disks can be used interactively with the Finder like any other read/write disk allowing users to read data from prerecorded DVD-ROM disks (including movie/video titles - though some are scrambled for copy protection by the manufacturers). UDF also allows for data interchange with PC's equipped with DVD-RAM or DVD-ROM drives.
  • UDF 1.5.2 comes with a contextual menu item that can be used to mount a bridge disk (one containing both UDF and ISO9660 volume formats) as an ISO volume.

  • UDF 1.5.2 is an FSM-based file system plug-in. It consists of a single extension file (UDF Volume Access) that goes in the Extensions folder, plus a contextual menu item file (UDFBridgeCMPlugin) that goes in the Contextual Menu Items folder.

  • Requires the Apple CD/DVD Driver.

Back To Top


URLAccess is a shared library providing high-level Internet APIs to developers. 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.
  • URLAccess provides access to HTTP/S, FTP, and HFS through the URL schemes "http://", "https://", "ftp://", and "file://". The file URLs are provided to allow one code path for local and remote data.

  • Support for SSL, Cern Proxies, and SOCKS firewalls are provided. SSL is used when the "https://" scheme is recognized. (Proxies and SOCKS are used if the Internet Config preference indicates that they should be).

  • FTP supports both passive and active connections. Any authentication is handled by the URLAccess API with the option for the client to provide the dialog.

Back To Top

Apple Menu Items

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

Sherlock 2.1

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.
  • Adds support for proxy/firewall support (by way of URLAccess).

  • Find by Content now supports a plug-in mechanism for extracting text from files for use during indexing.

  • Find by Content adds ability to index a particular file or folder rather than an entire volume.

  • Two new Apple events have been added. One for retrieving a list of Internet search sites supported by Sherlock. The other is the ability to open/switch Sherlock to a specific tab.

  • The "Search Internet" enhancements in Sherlock 2.1 are:

    • the window is now resizable, so more search sites can be viewed at the same time; and

    • addition of a "Uncheck All" button to easily turn off all of the search sites.

Back To Top

Apple Extras

Desktop Printer Utility 1.2

Apple's Desktop Printer Utility (DTPU) is an utility program used to configure or set up various types of Desktop Printers (DTPs) supported by LaserWriter.
  • DTPU 1.2 now supports the ability to configure USB Desktop Printers in addition to AppleTalk (PAP), LPR, IrDA, and Hold printers. DTPU continues supports the creation of a desktop PostScript translator.

  • Third-party plug-ins are now supported. This feature works in conjunction to the Custom Hose feature added to LaserWriter 8.6. This gives third-party developers (printer vendors) the ability to create Desktop Printers using the user interface of the DTPU that access printers with I/O types that are defined by the Custom Hose.

    Related Materials:

Back To Top


Disk Copy 6.3.3

Disk Copy is a utility program that allows users to create, mount, and change disk images.
  • Added support for the Imation SuperDisk drive.

  • Fixed problem with Navigation Services and AppleShare servers.

  • Added support for Appearance Manager progress bars.

    Related Materials:

    • Disk Copy 6.3.3 Quick Reference

Back To Top


Acrobat version of this Note (147K).


Special thanks to Brian Bechtel, Tom Maughan, Eric Schlegel, and Eric Simenel.

And thanks to Matt Ackeret, Candy Beymer, Jennifer Cavaliere,
David Casseres, Darren J. Conrad, T.L. Davis, Godfrey DiGiorgi
, Kathryn Donahue, Peter Edberg, Chris Espinosa, Peri Frantz,
Deborah Goldsmith, Alex Hamdy, Sari Harrison, Brad Hochberg,
Tim Holmes, Riley Howard, Daniel Jalkut, Jim Kateley,
Ingrid Kelly, Eric Koebler, Scott Kuechle, Nancy Lammlein,
Barry Langdon-Lassagne, Donna S. Lee, Jim Luther, David A. Lyons,
Joseph Maurer, Howard Miller, John Miller, Jim Murphy,
John W. Myer, Dan Nolen, Dave Opstad, Guillermo A. Ortiz,
David "Lefty" Schlesinger, Kim Silverman, Keith Stattenfield,
Sam Summerlin, Chris Thomas, Mark Turner, Rene A. Vega,
Celia Vigil, Mike Wiese, Dan Wolfe, and Jason Yeo.

To contact us, please use the Contact Us page.

Updated: 10-May-99

Technotes | Contents
Previous Technote | Next Technote