Being a compendium of revised and
new features of interest to software developers in release
8.5 of the Mac OS.
This Technote
discusses changes and corrections in the next generation of
Mac OS: Mac OS 8.5. This system follows Mac
OS 8.1 and contains several new and revised features
including:
- more PowerPC code
- consolidated control panels
- faster system startup time
- improved AppleScript performance
- new Unicode text drawing facilities
- new HTML-based help facilities
Updated: [Oct 26 1998]
Hardware Requirements
Mac OS 8.5 can be installed on any Macintosh
that originally shipped with a PowerPC processor that has
at least 16 megabytes of physical RAM and a minimum of 24
megabytes of logical RAM. Also, Mac OS 8.5 can be
installed in the Mac OS X Server DR2 Blue Box by way of standard
install.
Mac OS 8.5 is tested and qualified by Apple to run on
Apple PowerPC-based Mac OS computers. (Mac OS 8.5 is not
tested or qualified by Apple for use on clone Mac
OS-based systems.)
Back to top
Installation
|
Install Mac OS
8.5
|
This is an improved version of the "Install Mac
OS" application provided with Mac OS 8.0 and 8.1. This
new "Install Mac OS" application offers an improved user
experience by allowing the user to customize components
before any installation begins and not requiring further
user intervention until the installation is complete.
The "Install Mac OS" application program requires
System 7.0 or later to run. Typically, users will boot
from the installation CD.
The "Install Mac OS" application will update a System
Folder whose version is 7.1 or later. The installer will
perform a "clean" installation onto volumes that contain
earlier versions of the system software (or no system
software at all).
New and improved features include:
- File & Target Lists -- a more compact way of
storing file copy commands to get around Resource
Manager limitations.
- Alias Atom -- an atom for creating aliases during
installations.
- Enhancements to the Installer Engine AE
suite.
Related Materials:
Back to top
|
Finder 8.5
|
Finder 8.5 offers improved window redraw
performance, faster file copies, and several other new,
improved, or extended user interface elements. Specific
additions include:
- A new dialog allows users to repair broken
aliases.
- Using contextual menus, an alias of any Finder
object can be added to the "Favorites" folder.
- Using contextual menus, AppleScript scripts
triggered by various Finder actions can be attached to
any folder.
- Sounds now play in response to many user
actions.
- Finder's resource fork is now read-only. In many
cases, this will prevent accidental corruption of
Finder.
- The system stability warning dialog box is now
displayed when Finder is re-launched after a system
error.
- It is now once again possible for an application
to specify
'alis' as a file type in its
bundle resources to indicate that unresolved alias
files should be sent to its "open documents" Apple
event handler.
- Developers can designate certain files as "busy"
files. Busy files are files that are in the process of
being created or copied, regardless of whether File
Manager has them open. The Finder will treat any file
whose type is set to zero or to a type within the
range
'bzy ', 'bzy!', ...,
'bzy?' as a busy file and will not
attempt to change its type or creator. The range
'bzy ', 'bzy!', ...,
'bzy?' is provided for developers wishing
to animate a file's icon during its creation.
|
Compatibility Note:
Archive developers should store the entire
contents of both the FInfo and
FXinfo records and the DInfo
and DXInfo records when archiving files
and directories. All fields in these records should be
preserved, including flags and fields marked as
reserved (with the exception of the "inited" bit for
files containing desktop database information).
|
|
Compatibility Note:
Although frFlags and
fdFlags are located at the same offset in
catalog records, some of the flags now have different
meanings when the catalog record refers to a file
versus when the catalog record refers to a directory.
Developers should not assume flags that are only
defined for files are unused when the catalog record
refers to a directory. See the flag descriptions in
<Finder.h> for more information
about individual flags.
|
Back to top
Autorouting and Extended
Routing
typedef struct
{
OSType creator; // set to zero
OSType fileType; // set to zero
OSType targetFolder; // set to 'macs'
OSType destinationFolder; // the folder to route into
OSType reserved; // set to zero
}
RoutingResourceEntry;
|
The creator, fileType,
and reserved fields should be set to zero.
When the file is dropped into a folder of the type
specified in targetFolder, it will be routed
to the folder specified in
destinationFolder. Currently, only the
System Folder is supported for the
targetFolder field, so this field should be
set to the System Folder's FindFolder ID
('macs'). Example: if the file should be
routed to the "Preferences" folder, the
destinationFolder field should contain
'pref'.
Before the Finder will look for the
'rout' resource in a file, the routing
information flag in the
ioFlXFndrInfo.fdXFlags must be turned on.
Developers can access this flag using the
kExtendedFlagHasRoutingInfo mask defined in
<Finder.h>.
|
Compatibility Note:
Some of the fields documented in
FInfo, DInfo,
FXInfo, and DXInfo no longer
accurately reflect how these fields are actually used
by the system. Now, the accurate definition is
provided by the FileInfo,
FolderInfo,
ExtendedFileInfo, and
ExtendedFolderInfo data structures,
respectively. In particular, they contain the
definition of where to find the routing bit.
|
Back to top
New Finder display facilities
- The Get Info window can now display multiple panels
of information.
- Finder preferences are now consolidated into a single
multiple panel window.
- A new control has been added to the View Options
window, allowing users to revert the current view to a
standard view.
- List view columns are now resizable.
- The new Finder can display badged icons.
- Support for proportional scroll bars has been
added.
- Proxy icons are displayed in window title bars.
- View font and size is now set in the Appearance
control panel.
- To override the default message displayed by the
Finder when a file cannot be opened, developers may
include a
'STR ' ID = -16397 resource in any
file's resource fork. This message text will be displayed
when the user attempts to open a file that cannot be
opened, overriding the Finder's default message.
- In previous versions of the Finder, files with their
custom icon bit set that did not contain a suite of
custom icons were not handled correctly. The Finder
now resets the custom icon bit and uses the default icon
for these files.
|
Compatibility Note:
Starting with Finder 8.5, the invisible
"Icon<cr>" file placed in directories may
contain resource-based information used by the Finder
other than an icon suite. It should only be deleted
if it contains no resources at all.
|
- The Finder now uses the new
gestaltVMInfoType Gestalt selector to
determine how information about virtual memory will be
displayed in the "About This Computer" window. Developers
wishing to control how the Finder displays virtual memory
information may redefine this selector to return any of
the values shown in Table 1. Table 1 describes the
various virtual memory information display modes
available in this version of the Finder.
Table 1. Finder virtual memory display
modes determined by the value of the
gestaltVMInfoType
('vmin') selector.
|
Selector Name
|
Value
|
VM Information
Displayed
|
|
gestaltVMInfoSizeStorageType
|
0
|
Display either the string "virtual
memory on" or the string "virtual
memory off", the size of the backing
store, and the name of the volume where
the store is located (the
default).
|
|
gestaltVMInfoSizeType
|
1
|
Display either the string "virtual
memory on" and the size of the backing
store or the string "virtual memory
off".
|
|
gestaltVMSimpleType
|
2
|
Display either the string "virtual
memory on" or the string "virtual
memory off".
|
|
gestaltVMNoneType
|
3
|
No virtual memory information will
be displayed, even when virtual memory
is turned on.
|
Back to top
Internet Location Files and
Clipping Files
- Finder supports enhanced text clipping naming. Text
clipping file names are now generated using the first few
characters in the text supplied as the text clipping
(truncated using the ellipse character as appropriate).
Previous Finders would name text clippings as 'text
clipping', 'text clipping 1', and so on. For example,
the new Finder may name a text clipping generated using
this sentence as "For example, the...". This new facility
supplements the clipping file naming facilities
introduced with MacOS 8.0 (see the "Controlling
Clipping File Names" section of Technote TN1102,
"Mac OS 8" for more information).
- Both Internet location files and clipping files are
created by the Finder when it receives a Drag-and-Drop
command. The type of file created depends on the contents
of the drag as described below.
- Clipping files created by the Finder will have one of
the types listed in Table 2. All clipping files have a
creator type of
kClippingCreator
('drag').
Table 2. Clipping file types created by
Finder.
|
Constant Name
|
OSType
|
Description
|
|
kClippingPictureType
|
'clpp'
|
a QuickDraw picture
('PICT')
|
|
kClippingTextType
|
'clpt'
|
contains ASCII text
('TEXT')
|
|
kClippingSoundType
|
'clps'
|
contains a sound resource of type
'snd '
|
|
kClippingUnknownType
|
'clpu'
|
unknown data
|
Finder will create an Internet location document
when it receives a drag containing an Universal Resource
Locator (URL). A drag containing an URL will be noticed
by the Finder in one of two ways:
- If the drag contains data of flavor type
'url ', then the data will be treated as
an URL.
- If the drag contains data of flavor type
'TEXT', then Finder will examine the text
data attached to the flavor and determine if it is an
URL.
When it finds URL information, Finder will create an
Internet location file assigning the file type according
to the URL type. Table 3 lists the file types the Finder
will assign to Internet location files. Internet location
files created by the Finder will have a creator type of
kInternetLocationCreator
('drag').
Table 3. Internet location file types assigned by the Finder.
|
Constant Name
|
OSType
|
Description
|
|
kInternetLocationHTTP
|
'ilht'
|
an http address
|
|
kInternetLocationFTP
|
'ilft'
|
a ftp server address
|
|
kInternetLocationFile
|
'ilfi'
|
a file on disk
|
|
kInternetLocationMail
|
'ilma'
|
an email address
|
|
kInternetLocationNNTP
|
'ilnw'
|
news group or article
|
|
kInternetLocationAFP
|
'ilaf'
|
Apple Filing Protocol address
|
|
kInternetLocationAppleTalk
|
'ilat'
|
an AppleTalk address
|
|
kInternetLocationGeneric
|
'ilge'
|
some other resource
|
|
Compatibility Note:
Specific file formats and contents of both
clipping files and Internet location files are
undocumented and subject to change without
notice.
|
Back to top
AppleScript Support
- Additions to Finder's AppleScript support
include:
- terminology for new features
- new view options
- attach and remove actions from folders
- list actions attached to a folder
- execute a handler when a folder is opened,
closed, added to, has items removed from it, or has
its window moved or resized
- new support for scripting existing features
- query and change information about any file or
folder
- open, close, and reposition windows and
icons
- query information about running processes
- query or set sharing privileges
- move files to the Trash
- eject disks
- restart or shut down the machine
- create folders or alias files
Related Materials:
Back to top
|
Apple Help
|
Apple Help provides system-wide instructional
help services for virtually all aspects of Mac OS. The
Apple Help technology has two main components: Help
Viewer and Apple Guide.
Apple Guide 2.3
In Mac OS 8.5, Apple Guide is used to coach users
through sequences of commands required to perform a task.
Apple Guide 2.3 provides the following features:
- supports calling a specific Apple Guide sequence
by name from AppleScript
- backwards compatibility with older guide files
- integrated with Help Viewer
Help
Viewer 1.0
Help Viewer is a lightweight HTML-rendering
application that allows users to conveniently browse
online help materials. Help Viewer provides the following
facilities:
- Uses the Apple Information Access Toolkit (AIAT)
with the installed help files. The results are
displayed in a dynamically generated HTML page.
- AppleScript support allows callers to search for
any topic or string and display the results.
- URL links can be used to run AppleScript
scripts.
- URL links can be used to open Apple Guide
sequences.
Apple recognizes many developers are interested in
more information, but no further developer-level
information is available at this time.
Related Materials:
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.5, even when the shift key is held
down at system startup.
General
- In Mac OS 8.5, the emulated 68K processor runs in
user mode even when VM is off. All 68K interrupt code
runs in supervisor mode. As a result, all 68K interrupt
code utilizes the interrupt stack pointer instead of the
user stack pointer (the stack used by non-interrupt
code). This change reduces the chance of the stack
overrunning the application's heap zone during interrupt
processing.
|
WARNING:
Developers should not assume the emulated 68K
processor is running in supervisor mode when Virtual
Memory is OFF.
|
Developers who require access to supervisor mode
68K instructions can use the
_EnterSupervisorMode trap to switch the
processor mode. The assembler code shown in Listing 1
illustrates the correct way to call the
_EnterSupervisorMode trap and enter
supervisor mode. Here, the result returned by
DebuggerGetMax is examined to determine if
_EnterSupervisorMode (selector 8) is
available. If it is available,
_EnterSupervisorMode is called.
Listing 1. The correct way to ensure the
68K processor is in supervisor mode.
; Is _DebugUtil available?
; Code running on a IIci or later can skip this step.
move.w #_Unimplemented,d0
_GetToolTrapAddress
move.l a0,-(sp)
move.l #$A08D,d0 ; get _DebugUtil
_GetToolTrapAddress
cmpa.l (sp)+,a0 ; was this previously
; unimplemented?
beq.s @noEnterSupervisorMode
; Is the _EnterSupervisorMode selector available?
_DebuggerGetMax ; check how many _DebugUtil
; selectors are implemented
cmpi.l #8,d0 ; is selector 8 available?
blt.s @noEnterSupervisorMode ; EnterSupervisorMode isn't
; available
_EnterSupervisorMode ; switch to supervisor mode
; (switches stacks)
move.w d0,-(sp) ; and save the previous SR contents
; on the stack
bra.s @inSupervisorMode
; If _EnterSupervisorMode wasn't available, then put
; sr on the stack
@noEnterSupervisorMode
move sr,-(sp) ; save the current SR
@inSupervisorMode
; ...
; do stuff in supervisor mode
; remember that the stack has been swapped if we switched
; from user mode to supervisor mode.
; ...
move (sp)+,sr ; restore the SR
|
|
Compatibility Note:
DebuggerGetMax is available on all
machines supported by Mac OS 8.5. On other systems,
developers must test for the _DebugUtil
trap before calling
DebuggerGetMax.Testing for VM to
determine if the _EnterSupervisorMode
trap should be used is considered a programming error:
developers should use the above method instead.
|
- Various managers, in particular Font Manager, are
considerably less memory-hungry, both on a per-process
and system-wide basis.
- Several of the managers are now entirely implemented
in PowerPC code.
- The dialog informing the user that an improper
shutdown occurred has been redesigned. It now includes an
option to run Disk First Aid before continuing the
startup process and will time out after two minutes.
Related Materials:
Alias Manager
The Alias Manager is the part of the operating
system that communicates with the File Manager to
maintain alias records used to store references to file
and folder locations. The Alias Manager does not create
Finder alias files: the Finder creates these files and
stores alias records created by the Alias Manager in
them.
- The Alias Manager's search methods have been
broadened to include cases where the simple search for an
existing file on a mounted volume fails, yet the absolute
path stored in the alias record resolves to an existing
file. In these cases, the Alias Manager will return a
reference to the file found using the absolute path.
- The Alias Manager API now provides the following new
routines:
IsAliasFile
OSErr IsAliasFile(const FSSpec *fileFSSpec,
Boolean *aliasFileFlag,
Boolean *folderFlag);
|
fileFSSpec is a pointer to a file
specification record referring to a file.
aliasFileFlag is a pointer to a Boolean
variable set to true if the file is an alias file
created by the Finder.
folderFlag is a pointer to a Boolean
variable set to true if the alias refers
to folder.
The function IsAliasFile sets
*aliasFileFlag to true if the file
referred to by the fileFSSpec parameter is an alias
file created by the Finder.
ResolveAliasWithMountFlags
OSErr ResolveAliasWithMountFlags(const FSSpec *fromFile,
AliasHandle alias,
FSSpec *target,
Boolean *wasChanged,
unsigned long mountFlags);
|
fromFile, if not NULL, is
used to resolve relative aliases.
alias is the AliasHandle to
resolve.
target contains a pointer to an
FSSpec record that will refer to the file or
directory referred to by the alias when the function
completes successfully.
wasChanged refers to a
Boolean variable that will be set to true
if the alias record has been modified by
ResolveAliasWithMountFlags.
mountFlags can be set to
kResolveAliasFileNoUI to prevent any user
interaction, including disk switch alerts, while the
alias is being resolved.
The routine ResolveAliasWithMountFlags is
identical to ResolveAlias with the exception
that it provides the mountFlags parameter,
allowing callers to suppress disk switch alerts.
ResolveAliasFileWithMountFlags
OSErr ResolveAliasFileWithMountFlags(FSSpec *theSpec,
Boolean resolveAliasChains,
Boolean *targetIsFolder,
Boolean *wasAliased,
unsigned long mountFlags);
|
theSpec on input refers to a
FSSpec record that refers to an alias file.
If the function completes successfully, it will refer to
the file or the directory that was referred to by the
alias file.
resolveAliasChains turns on or off
resolution of chains of alias files (for example, an
alias file that refers to an alias file that finally
refers to the target file).
targetIsFolder points to a
Boolean variable that will be set to true
if the target referenced by the alias file was found to be a
folder.
wasAliased returns true if
theSpec referred to an alias file.
mountFlags can be set to
kResolveAliasFileNoUI to prevent any user
interaction, including disk switch alerts, while the
alias is being resolved.
The routine
ResolveAliasFileWithMountFlags is identical
to ResolveAliasFile with the exception that
it provides the mountFlags parameter,
allowing callers to suppress disk switch alerts.
|
Compatibility Note:
Before calling IsAliasFile,
ResolveAliasWithMountFlags, or
ResolveAliasFileWithMountFlags,
developers must determine if these routines are
available by testing the Alias Manager gestalt
value's gestaltAliasMgrResolveAliasFileWithMountOptions
bit. Also, see the InterfaceLib section for important
information about linking with the new
InterfaceLib.
|
- The routines
NewAliasMinimal or
NewAlias could cause heap corruption if an
invalid FSSpec record with the length of the
name field greater than 63 bytes was provided as a
parameter. These routines now return a
paramErr error when they receive an invalid
FSSpec record.
Related Materials:
Back to top
Appearance Manager 1.1
The Appearance Manager provides facilities for
providing a consistent appearance for graphical user
interface elements. The Appearance Manager is not to be
confused with the Appearance extension, which is
compatible only with previous versions of Mac OS, and
provides updates to Control Manager, Dialog Manager, Menu
Manager, and Window Manager, as well as providing the
1.0.X versions of Appearance Manager. Appearance Manager
1.1 is delivered as part of the Mac OS 8.5 System File
and includes the following new features:
- Switchable visual appearances.
- Support for data-driven appearances (though no
appearance files are included with Mac OS 8.5).
- Many new theme brushes and text colors.
- Drawing primitives for most interface elements.
- Support for saving and restoring the
GrafPort state regardless of whether the
current appearance draws using a color or pattern.
- Several different styles of scroll bars and check
boxes.
- Appearance and font change notifications are provided
by way of Apple Events. Each event uses
kAppearanceEventClass as its class and one
of the constants listed in Table 4 as its ID. There are
no parameters to any of the events, and these events are
sent only to those processes that have called
RegisterAppearanceClient to register as an
Appearance Manager client. Table 4 lists the new Apple
Events sent to Appearance Manager clients.
Table 4. Appearance and font change Apple Events.
These events use the Apple Event class
kAppearanceEventClass ('appr').
|
Constant Name
|
OSType
|
Description
|
|
kAEAppearanceChanged
|
'thme'
|
appearance changed
|
|
kAESystemFontChanged
|
'sysf'
|
system font changed
|
|
kAESmallSystemFontChanged
|
'ssfn'
|
small system font changed
|
|
kAEViewsFontChanged
|
'vfnt'
|
views font changed
|
- Animated cursor support.
- Support for sound during various user
interactions.
- An Appearance folder has been added to the System
Folder. The Appearance folder is used as a common
location to store Appearance-related data files, and it
is also the location of the Theme Files, Sound Sets, and
Desktop Pictures folders. Appearance files are autorouted
to their appropriate folders when dropped into the System
Folder. Table 5 lists the new Appearance folders present
in Mac OS 8.5.
Table 5. New folders for Appearance and their
FindFolder selectors.
|
Folder Name
|
OSType
|
Description
|
|
Appearance
|
'appr'
|
Appearance-related materials
|
|
Theme Files
|
'thme'
|
location for theme files
|
|
Sound Sets
|
'snds'
|
location for appearance-related sound
sets
|
|
Desktop Pictures
|
'dtp '
|
location for desktop picture files. Files of
type 'JPEG' are auto-routed into
this folder when dropped into the System
Folder.
|
- The file
<Folders.h> contains the
constants listed in Table 5 along with their symbolic
names (kAppearanceFolderType,
kThemesFolderType,
kSoundSetsFolderType, and
kDesktopPicturesFolderType) for use in calls
to FindFolder.
Related Materials:
Back to top
ATSUI (Apple Type Services for
Unicode Imaging)
Unicode is a character set which encodes the
characters of many languages in a flat 16-bit number
space. ATSUI extends the QuickDraw API and makes it
possible for Mac OS applications to draw Unicode text.
ATSUI provides both low-level services for drawing
Unicode text as well as much of the high-end
typographical control previously provided by QuickDraw
GX.
- Provides text imaging services for 16-bit Unicode
(UTF-16).
- ATSUI fully conforms to The Unicode Standard, Version
2.1.
- ATSUI fully supports the Unicode bidirectional
algorithm, including the bidirectional ordering
codes.
- ATSUI text-drawing can be integrated within a
QuickDraw-only application (unlike QuickDraw GX, ATSUI
does not require developers to adopt a non-QuickDraw API
for all text drawing).
- For fonts which lack a Unicode
'cmap'
table, ATSUI will automatically generate one "on the
fly". The font file is not modified, but the conversion
makes certain assumptions about character encodings. For
best results, it is recommend that Japanese fonts include
a Unicode 'cmap'.
Related Materials:
Back to top
Code Fragment Manager
The Code Fragment Manager (CFM) is responsible
for loading and preparing PowerPC executables. Almost all
of the PowerPC Mac OS and all PowerPC applications depend
on the services of the CFM in some way.
- Code Fragment Manager calls to
ResolveAliasFile at system startup would
attempt to put up the "Please Insert The Disk" alert
before any drawing environment was established. CFM now
calls ResolveAliasWithMountFlags to disable
the disk switch alerts.
- The Virtual Memory Manager's file mapping code in Mac
OS 8.1 makes large chunks of file-mapped memory resident
that are certain or very likely to be used in the near
future. In Mac OS 8.5, that functionality has been moved
into the Code Fragment Manager. Application launch
performance should be approximately the same in most
cases. However, files that have multiple code fragments
(for example, fat CFM 68K/PowerPC applications) may
benefit from this refinement.
- CFM provides an optional facility where an
application can specify a special folder to be searched
for shared libraries. A field in the
'cfrg' resource
provides the resource ID of an 'alis'
resource. If this field is non-zero, CFM attempts to read
the resource from the application's resource file and
resolve it. (The assumption is that this is a relative
alias to a subfolder of the application folder -- for
example, a repository for plug-ins.) The Code Fragment
Manager now calls the new Alias Manager routine
ResolveAliasWithMountFlags to resolve
aliases referenced by the 'cfrg' resource to
prevent any user interaction while libraries are being
loaded.
- The Application Support folder is now part of the CFM
search path.
- CFM defines a new bit in the
'cfrg'
resource which forces the fragment's code into the
application heap. See the constant
kCFragLibUsageMapPrivatelyMask in
<CodeFragments.h> for more info.
[Radar 2205428]
Related Materials:
Back to top
Control Manager
The Control Manager provides facilities for
drawing and processing user interaction with controls.
New features for the Control Manager include:
- The Control Manager is now implemented in PowerPC
code.
- There is a new edit text control variant supporting
inline input.
- The edit text control now supports locking (disabling
of user input).
- The static text control now supports text
truncation.
- The icon control's icon can now be changed
dynamically.
- Check boxes and radio buttons now support automatic
toggling.
- Proportional scrolling is now available.
- Support for 32-bit control values has been added.
- Facilities for associating tagged data with controls
(properties) have been added.
- A scrolling text box control (read-only text) has
been added.
- A control region API has been added.
- A control validation API has been added.
- Control Manager now validates
ControlHandle parameters and returns an
error if they are invalid.
- Fonts used by controls can now be specified as a
standard system font plus modifications.
- The clock control now returns more part codes.
- The edit text control now supports a validation
callback procedure.
Related Materials:
Back to top
Device Manager
The Device Manager provides a programming
interface for communications between applications and
device drivers (typically code that communicates with
particular hardware devices, although some device drivers
do not actually drive devices).
- There are three new Driver Gestalt selectors allowing
developers to return, among other things, color icons for
their disk drives. Table 6 describes the new
selectors.
Table 6. Driver Gestalt selectors
introduced in Mac OS 8.5.
|
Selector Name
|
Value
|
Information Returned
|
|
kdgPhysDriveIconSuite
|
'dics'
|
A pointer to a IconFamily
('icns') data structure
that can be used to represent the disk
driver's physical drive (formerly in
csCode 22) in
driverGestaltResponse.
|
|
kdgMediaIconSuite
|
'mics'
|
A pointer to a IconFamily
('icns') data structure
for representing the disk driver's
media (formerly in csCode
21) in
driverGestaltResponse.
|
|
kdgMediaName
|
'mnam'
|
A pointer to a Pascal string
describing the disk driver (formerly in
csCode 21) in
driverGestaltResponse.
|
Related Materials:
Back to top
Dialog Manager
The Dialog Manager manages user interactions
with dialogs. New features in the Dialog Manager include:
- The Dialog Manager is now implemented in PowerPC
code.
- The Dialog Manager now allows you to specify dialog
timeouts (automatic dismissal after an idle time).
- It is now possible for developers to specify the
event mask used inside of
ModalDialog.
Related Materials:
Back to top
Display Manager
The Display Manager manages changes in both the
display settings and the arrangement of monitors attached
to the computer.
- With some display cards, resolutions that were marked
as non-preset resolutions by the display card were not
showing up in the recommended list of resolutions in the
Monitors & Sound control panel. The Monitors &
Sound control panel was checking the non-preset bit, while
the Display Manager was not. The Display Manager would
strip the lower timing and Monitors & Sound would
strip the higher (not preset) timing so neither would
appear in the timing list used to build the recommended
list. The Display Manager now correctly observes the
non-preset bit and the recommended list is built
correctly.
- In some cases, an unreadable character was appended
to the end of some names returned by the Display Manager.
This has been corrected.
- A problem in the Display Manager and Monitors &
Sound control panel that could cause a crash when a
multiscan monitor was attached to a PowerBook has been
corrected. This problem would occur upon waking a
PowerBook when the monitor was disconnected during sleep
if the PowerBook was put to sleep with the Monitors
& Sound control panel open.
- A problem on some machines where the display enabler
would not load at startup if a smart display was plugged
into the built-in monitor connector has been corrected.
Related Materials:
Back to top
Disk Initialization
Package
The Disk Initialization Package supports the formatting of disks.
DILoad was loading foreign file system
resources into the current heap zone (usually, the
current application's heap) that could cause a crash if
the application quit before the resources were unloaded.
These resources are now loaded into the system heap.
- File System Manager-based file systems that support
bad block sparing are now called to spare blocks when a
disk driver verify request fails. This feature was
unavailable in Mac OS 8.0 and Mac OS 8.1.
- The initial value of the Format popup menu in the
disk initialization dialog now indicates the current
format of the disk.
Related Materials:
Back to top
Drag Manager
The Drag Manager supports Drag-and-Drop
operations between windows and applications. New features
for the Drag Manager include:
ShowDragHilite now uses the highlight
color chosen by the user in the Appearance control
panel.
- A potential crashing problem that could occur with
translucent drags has been corrected in this version of
the Drag Manager. In previous versions of the Drag
Manager, a pointer to an unlocked relocatable block (a
handle's master pointer) was being used in
SetDragImage.
Related Materials:
- Technote TN1043,
"On Drag Manager Additions (Release 1.1)"
- Technote TN1085,
"Using the Drag Manager to Interact with and
Manipulate File System Entitles"
- Q&A TB28,
"Drag Manager and windowKind 20"
- The Drag
Manager SDK
Back to top
Driver Services
Library
DriverServicesLib provides utility routines
for native drivers ('ndrv's). The following
improvements in virtual memory support have been added to
the DriverServicesLib:
PrepareMemoryForIO now uses
LockMemoryForOutput instead of
LockMemory when the
IOPreparationOptions are
kIOIsOutput, but not
kIOIsInput.
- With Mac OS 8.5,
GetPageInformation
returns the kPageIsLockedResident
(kPageIsLocked)
PageStateInformation bit correctly. When
Virtual Memory is on, kPageIsLockedResident
indicates that a page has been locked with
LockMemory, or
LockMemoryForOutput. Before Mac OS 8.5,
resident pages with the kPageIsInMemory
(kPageIsResident)
PageStateInformation bit set always had the
kPageIsLockedResident bit set even when they
were not locked.
- With Mac OS 8.5,
GetPageInformation
returns a new PageStateInformation bit,
kPageIsHeldResident. When Virtual Memory is
on, kPageIsHeldResident indicates that a
page is held in physical memory (but not necessarily
locked) with HoldMemory,
LockMemory or
LockMemoryForOutput.
Related Materials:
Back to top
Event Manager
The Event Manager manages the delivery of events
to applications. Changes in the Event Manager include:
- Parts of the Event Manager are now PowerPC-native.
- Formerly, the event queue was limited to 20 events,
and keystrokes from faster typists could be lost. The
size of the event queue has been increased to 48
elements.
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:
PBXGetVolInfo was returning an incorrect
value in ioVNmFls when
ioVRefNum contained either a working
directory id or volume number zero (the default
directory) when the call referred to a FSM-based file
system volume. As described in the File System Manager
section, this has been corrected so the File Manager now
passes the working directory id or zero through to FSM-based
file systems, rather than converting the value to a
real volume reference number first.
- Under some circumstances, the hard disk on some
PowerBook models would not spin down when it was
instructed to do so by the Control Strip module. This has
been corrected.
UnmountVol would sometimes return
fBsyErr (File busy) errors when called for
some server-mounted volumes because the File Manager was
leaving some working directories open. This has been
corrected.
- The
pleaseCacheBit (bit 4) in the
ioPosMode field is now supported by the disk
cache. Read/Write requests to HFS/HFS Plus volumes can now
set the pleaseCacheBit in
ioPosMode to request caching for larger
blocks of data. File System Manager clients can also set
this bit in the cacheOptions parameter to
UTCacheReadIP, UTCacheWriteIP,
UTVolCacheReadIP, and
UTVolCacheWriteIP requests. Setting this bit
does not guarantee a request will be cached; however, it
does increase the probability of a request being
cached.
PBGetFPos now clears all 16 bits of
ioPosMode.
- The routines
PBAllocate and
PBAllocContig have been modified so they set
the value of ioActCount before they return
even if an error occurs during their execution.
- The minimum size for the disk cache is now 128K.
- Previously, the colons occurring in file names were
returned as-is, making such files unreachable using the
Pascal string-based APIs. Colons are now converted to
question marks (as are other non-representable
characters) and the File ID is inserted in the name.
- Calls to
PBCatMove on HFS Plus-formatted
volumes were creating oversized catalog file thread
records, leaking space in the catalog file. This has been
corrected.
- A problem where
PBGetCatSearchSync could
return inconsistent results when searching HFS Plus
volumes has been corrected.
- When the HFS Plus code was saving the Volume Header
information, it was sign-extending the attributes field,
causing the upper bits to be set when the software lock
bit (bit 15) was set. This sign extension no longer
occurs.
PBCatSearch has been modified so it does
not return catChangedErr as often as it did
in previous system releases.
- Placing a file ID in the directory ID field of a
CInfoPBRec and calling
PBGetCatInfo now correctly returns
dirNFErr. Under Mac OS 8.1, this would
incorrectly produce information about a file as if it
were a directory. Before 8.1, it would return
fnfErr.
- Added a new call,
PBHTrashVolumeCaches, that
flushes a volume and invalidates that volume's caches in the File
Manager and disk cache. Bit 2 of the
vMAttrib field returned by
GetVolParams is set if a volume supports
this call.
- HFS Plus volumes store all dates in UTC. In Mac OS
8.1, those dates were converted to/from local time using
the current time zone and daylight savings time settings,
which would cause the dates to appear to change by one
hour when switching to/from daylight savings time. In Mac
OS 8.5, the dates are converted using the daylight
savings time setting that would have been in effect as of
the date being converted.
- In Mac OS 8.1, when a HFS or HFS Plus volume was
extremely fragmented and an operation required the
extents B-tree to grow beyond its maximum number of
extents, the File Manager would return error -127 and
leave extra bits set in the volume bitmap. (Disk First Aid
would report this as a minor problem in the volume's
allocation bitmap.) The File Manager has been corrected
so that under these circumstances it will return a
dskFulErr and it will not leave extra bits
set in the volume bitmap.
- A problem where a crash could occur when saving a log
in MacsBug has been corrected. The File Manager was
attempting to jump to location zero.
- The File Manager was not properly invalidating some
caches when a volume was unmounted. The most common
symptoms were missing items in Finder windows when
mounting/unmounting a series of floppies or disk images
(such as installing software from floppies), or a disk
switch dialog appearing asking for a disk with a garbage
or blank name. The File Manager now correctly invalidates
a volume's caches when it is unmounted.
- A problem that could occur when mounting a CD-ROM has
been corrected. In these cases, mounting a CD-ROM would
sometimes lead to a dialog stating the volume needed to
be repaired. Under certain conditions after a crash
this could cause corruption of writable volumes when they
were mounted.
- A
PBAllocContig call requesting more
space than was available contiguously would return the
correct error but still allocate a smaller amount of
space. PBAllocContig has been changed so
that under these conditions it no longer allocates any
space.
- The File Manager no longer writes to the first sector
of a resource fork every time it is closed. Formerly, the
first sector of a resource fork contained a copy of the
112-byte MFS directory entry intended for use by the
Finder and disk repair utilities in older versions of Mac
OS. No current disk repair utilities rely on this
information, nor does the Finder. Removal of this extra
read/write cycle speeds up Finder copies for files
containing resource forks.
- A problem that could occur when booting from a HFS
volume has been corrected. If aliases to shared library
files located on a Mac OS Extended volume were present in
the Extensions folder, then these aliases would be
modified in such a way that they would fail to resolve
every time the system was rebooted. In Mac OS 8.5, such
aliases resolve correctly.
- A problem where
PBDelete could return
-127 and corrupt the volume bitmap when trying to delete
a file on a HFS Plus volume has been corrected. This
problem would occur when a filename was originally
converted to Unicode using the wrong text encoding (e.g.,
an application creating a file using a Japanese
filename without the language kit installed, but later
attempting to delete the file with the language kit
installed).
- Fixed a problem where foreign (external) file systems
could sometimes be called with asynchronous requests
while interrupts were partially disabled. While this
rarely occurred, when it did, it caused problems for some
foreign file systems (such as AppleShare) that use Open
Transport to communicate with file servers. All
asynchronous requests to foreign file systems now start
at deferred task time or at system task time, with
interrupts fully enabled.
|
WARNING:
Copying files near the 2 GB HFS file size limit to
an HFS volume will fail when the destination file's
physical size goes beyond the 2 GB size limit due to
larger allocation block sizes being used on the
destination volume.
|
Related Materials:
Back to top
File System Manager
The File System Manager provides a general means
by which foreign file systems can be installed,
identified, and interfaced to the operating system.
XGetVolInfo requests (like
GetVolInfo requests) to a FSM-based file
system are now passed a working directory number or the
default volume number (the value zero) in
ioVRefNum if the File Manager caller used a
working directory number or the default volume number.
Under Mac OS 8.1, ioVRefNum would always
contain the real volume reference number when passed to a
FSM-based file system. This change lets the FSM-based
file system determine what to return in
ioVNmFls correctly.
UTTrashBlocks now correctly returns an
OSErr result (either noErr,
rfNumErr, or fnOpnErr). Before
Mac OS 8.5, UTTrashBlocks returned the file
reference number passed in as the fileRefNum
parameter.
- The File Manager's disk cache now range-checks the
buffer parameter passed to
UTReleaseBlock
and UTMarkDirty. If the buffer parameter is
bad, those calls will no longer crash the system.
Related Materials:
Back to top
Folder Manager
The Folder Manager provides facilities for
locating "special" folders (for example, the
Extensions folder) without relying on the names of those
folders. This aids developers in application
localization.
- Folder Manager defines new auto-routings for
preferences files of type
'pref' (the
Preferences folder), shared libraries (the Extensions
folder), data fork fonts (the Fonts folder), Open Font
Architecture plug-ins (the Extensions folder), and
AppleTalk extensions (the Extensions folder).
FindFolder now returns the actual
location of the Printer Descriptions folder.
- Auto-routing has been added for files of type
'issp' (to Internet Search Sites).
- Files of type
'JPEG' are now auto-routed
to the Desktop Pictures folder.
- As in pre-Mac OS 8.0 versions of the system software,
the
FindFolder folder cache now detects
volume changes and keeps the cache up to date. In Mac OS
8.0 and Mac OS 8.1, it was possible for
FindFolder to return stale data.
- Several new folders have been defined for Mac OS 8.5.
Table 7 lists these new folders and their types.
Table 7. New folders for Mac OS 8.5.
|
Folder Name
|
OSType
|
Description
|
|
Launcher Items
|
'laun'
|
Items appearing in the Launcher
control panel. Items included in
folders with names beginning with a
bullet (option-8) character will appear
as a separate panel in the Launcher
window.
|
|
Internet Search Sites
|
'issf'
|
Internet search site specification
files used by the Find application when
it accesses Internet search sites.
Files of type 'issp' are
auto-routed to this folder.
|
|
TheFindByContent Folder
|
'fbcf'
|
An invisible folder located in a
volume's root directory. This folder is
used to store files created by 'Find by
Content'.
|
|
Find
|
'fnds'
|
Contains files used by the Find
facilities in Mac OS 8.5. This folder
is located in the Extensions
folder.
|
|
Installer Logs
|
'ilgf'
|
A location for saving installer log
files.
|
|
ColorSync Profiles
|
'prof'
|
A location for storing ColorSync
profiles.
|
|
Appearance
|
'appr'
|
Appearance-related materials
|
|
Theme Files
|
'thme'
|
The location for storing theme
files
|
|
Sound Sets
|
'snds'
|
The location for storing appearance-related
sound sets
|
|
Desktop Pictures
|
'dtp'
|
The location for storing desktop
picture files. Files of type
'JPEG' are auto-routed
into this folder when dropped into the
System Folder.
|
|
Favorites
|
'favs'
|
The location for storing Internet
location files, aliases, and aliases to
other frequently used items. Facilities
for adding items into this folder are
found in Contextual Menus, the Finder,
and Navigation Services, et al.
|
|
Scripts
|
| |