ADC Membership Technical Business Join ADC
Search Advanced Search
Technical Note TN1163
Mac OS 8.6




CONTENTS

menubot600

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

 Updated: [Sep 28 2000]






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 (MacOS.app 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




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.



Compatibility Warning:
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.



Related Materials:

The Installer SDK 1.2.3.

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:

The Finder Interface chapter of Inside Macintosh: Macintosh Toolbox Essentials.

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:

Text Encoding Conversion Manger Reference.
The Text Encoding Converter SDK.
Apple Type Services for Unicode Imaging (ATSUI) Documentation.

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.

Back to top



Edition Manager

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

  • It was possible for the Edition Manager to crash in calls to GoToPublisherSection. This problem has been corrected.

Related Materials:

The Edition Manager chapter of Inside Macintosh: Interapplication Communication.

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.



Compatibility Warning:
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:

The Event Manager chapter of Inside Macintosh: Toolbox Essentials

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:

The File Manager section in the Mac OS 7.6 technote.
The File Manager chapter of Inside Macintosh: Files

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.




Compatibility Warning:
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:

The FindFolder description in the Finder Interface chapter of Inside Macintosh: Macintosh Toolbox Essentials.
The Using the System Folder and Its Related Directories section in the Finder Interface chapter of Inside Macintosh: Macintosh Toolbox Essentials.
The File Manager chapter of Inside Macintosh: Files.

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.



Compatibility Warning:
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.



Compatibility Warning:
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:

The Font Manager chapter of Inside Macintosh: Text.
TIL article 24791.

Back to top



Locales

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



Compatibility Warning:
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:

The Unicode Text Utilities section.

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:

The Menu Manager chapter of Inside Macintosh: Macintosh Toolbox Essentials.

Back to top



Memory Manager

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




Compatibility Warning:
NewPtr requests 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:

The Virtual Memory Manager Section.
The Memory Manager chapter of Inside Macintosh: Memory.

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



Compatibility Warning:
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.



  • A new routine for retrieving the pixel dimensions of text that will be drawn on the screen have been added to QuickDraw Text. This routine can be called from PowerPC applications linking against the shared library InterfaceLib in the System file. The new routines are defined as follows: FetchFontInfo

    OSErr FetchFontInfo(SInt16 fontID,
                        SInt16 fontSize,
                        SInt16 fontStyle,
    


    fontID is the font ID number for a font.

    fontSize is the font size in pixels.

    fontStyle contains the font style flags for the font.

    info is a pointer to a font information record where the result will be stored.

    FetchFontInfo returns the same information as GetFontInfo, except, rather than gathering information about the font settings from the current GrafPort, this information is provided as parameters to the routine. If FetchFontInfo returns an error, the fields in the FontInfo record will be set to zero. (The error code returned is the value returned by FMSwapFont.)



  • A new routine for retrieving the pixel dimensions of text that will be drawn on the screen have been added to QuickDraw Text. This routine can be called from PowerPC applications linking against the shared library InterfaceLib in the System file. The new routines are defined as follows: QDTextBounds

    void QDTextBounds(short byteCount,
                      const void* textAddr,
    


    byteCount is the number of bytes of text contained in the buffer located at the address contained in the value textAddr.

    textAddr points to byteCount bytes of textual data.

    bounds is a pointer to a Rect structure whose coordinates will be calculated by QDTextBounds. On return, bounds will contain the bounding coordinates for the entire image (including parts of the image that may extend beyond the first and last pen positions after the text has been drawn) that will be drawn for the text (given the font settings in the current GrafPort). Note that the coordinates returned are relative to the current pen position (as if the pen were located at the origin). For example, in Listing 3, we use QDTextBounds to draw a rectangle around the text's image. Notice how in this example the bounds returned by QDTextBounds are offset using the current pen position, so that the text drawing and the rectangle drawing occur using the same coordinate system.

    Listing 3. Using QDTextBounds to discover where text will be drawn.



    Rect bounds;
    char *text = "sample text";
    Point where;
    SetPt(&where, 100, 100);
    MoveTo(where.h, where.v);
    PenSize(1,1);
    QDTextBounds(text, strlen(text), &bounds);
    OffsetRect(&bounds, where.h, where.v);
    InsetRect(&bounds, -1, -1);
    FrameRect(&bounds);
    


    The leftmost edge of the text's image can either be to the right or the left of the pen position, and the rightmost edge of the text's image may be to the left or the right of the final pen position.

  • A variety of bug fixes allowing ATM to behave correctly in the system.

  • A number of bugs affecting the drawing and measurement of double-byte text were fixed.

Related Materials:

The "QuickDraw Text" section in Technote 1142, "Mac OS 8.5"
The QuickDraw Text chapter of Inside Macintosh:Text.

Back to top



SCSI Manager

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




Compatibility Warning:
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:

The SCSI Manager chapter of Inside Macintosh: Devices.
The SCSI 4.3 Manager chapter of Inside Macintosh: Devices.
Technote DV 24, "Fear No SCSI"

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:

The Sound Manager chapter of Inside Macintosh: Sound.

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 compatability with existing applications (as it contains the TextEncodingConverter shared library).

Related Materials:

The Text Encoding Converter SDK.

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.




Compatibility Warning:
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:

The Text Services Manager chapter of Inside Macintosh:Text.

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:

The Thread Manager 2.1 SDK.

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.

  • Unicode Text Utilities are included in the System file.

Related Materials:

Unicode Utilities Documentation.

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.




Compatibility Warning:
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:

The USB SDK 1.1f3.

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:

The Virtual Memory Manager chapter of Inside Macintosh: Memory.

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



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



Related Materials:

The Window Manager chapter of Inside Macintosh: Macintosh Toolbox Essentials.

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:

The ColorSync 2.6.1 extension section of this technote.
Technote 1160, "What's New With ColorSync 2.6"

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



Compatibility Warning:
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 server 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.



Compatibility Warning:
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.





Compatibility Warning:
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:

-- locate the application on disk:
set theapp to application "MHD:....:Network Setup Scripting"

-- this is for terminology scope:
tell application "Network Setup Scripting"

    -- this is for runtime targeting:
    tell theapp

        -- in this part, send commands to the app

    end tell
end tell



Related Materials:

Technote 1164, "Native Scripting Additions".
The discussion of AppleScript in chapters 7 (Introduction to Scripting), 8 (Apple Event Terminology Resources), 9 (Recording Apple Events), and 10 (Scripting Components) of Inside Macintosh: Interapplication Communication.
Inside Macintosh: AppleScript Language Guide.
The AppleScript SDK.

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:

Technote 1111, "Programmatic Mounting of AppleShare Volumes"
Technote FL 20, "File Sharing and Shared Folders"
Technote FL 28, "PBShare, PBUnshare, and PBGetUGEntry"
Technote FL 37, "You Want Permission to do What?!!"
AppleShare IP web pages.

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.
  • ColorSync 2.6.1 requires Mac OS 8.1 or later.

  • ColorSync 2.6.1 is also available for download from the web.

  • ColorSync 2.6.1 is not available for 68k machines.

  • Several new elements and changes have been incorporated into the ColorSync APIs (see the SDK and web site for details).

  • A ColorSync SDK for Mac OS 8, as well as a cross-platform ColorSync SDK for Windows 95, Windows 98, Windows NT 4.0 is available for Apple Developer Connection program members only. Technote 1160 covers both Mac OS 8 and cross-platform technical issues.

Related Materials:

Technote 1160, "What's New With ColorSync 2.6"
ColorSync Manager Documentation.
ColorSync web pages.
The ColorSync SDK.

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:

Apple Game Sprockets SDK.

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:

Technote 1141, "Extending and Controlling Sherlock"
Technote 1181, "Sherlock's Find by Content Text Extractor Plug-ins"

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:

Apple Game Sprockets SDK

Back to top



LaserWriter 8 version 8.6.5

LaserWriter 8 provides the ability to print to PostScript printers.
  • LW 8.6.5 now supports USB PostScript printers.

  • Job logging features have been added to enable users to get a log of their print job, including details about their font usage.

  • Additional UI has been added for controlling fonts downloaded to printers. First is the ability to control the format of the fonts downloaded to the printer. The user may select the format of either True Type or Adobe Type 1 fonts. The second control is the ability to always download the required fonts. The third feature forces the driver to produce only Adobe Type 1 fonts. If a True Type font is needed, it will be converted to Type 1.

Related Materials:

Technote 1144, "Creating Custom Hoses for LW 8.6"
Technote 1146, "LaserWriter 8.6 and Fonts
Technote 1165, "Introducing the LaserWriter 8 Driver Version 8.6.5"
Technote 1166, "LaserWriter 8.6.5 Job Log Format"
Technote 1172, "Writing Plug-ins for Desktop Printer Utility"

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:

The MRJ developer web page.
The MRJ technote collection.
Java and MRJ are evolving rapidly. Interested developers can monitor the MRJ web site for periodic upgrades.

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:

Multiprocessing SDK.

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:

Apple Game Sprockets SDK.

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:

Inside Macintosh: Networking With OpenTransport.
The OpenTransport web pages.
The OpenTransport SDK.
The OpenTransport/PPP SDK.

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



Compatibility Warning:
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:

The Speech Manager chapter of Inside Macintosh: Sound.
The Sp eech Recognition Manager 1.5.1 SDK.
The Speech Synthesis Manager 1.5 SDK.

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.
  • Mac OS 8.6 ships with SoundSprocket 1.0.

Related Materials:

Apple Game Sprockets SDK.

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

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:

Technote 1144, "Creating Custom Hoses for LW 8.6"
Technote 1172, "Writing Plug-ins for Desktop Printer Utility"

Back to top




Utilities


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




Change History

17-May-1999

HD Toolkit 3.02 mentioned, updated TEC section, updated Memory Manager section, and updated EBB warning in PlainTalk section.

28-September-1999

Corrected HTML for server-side style sheet.


Back to top

Downloadables

Acrobat

Acrobat version of this Note (220K).

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